Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Sự khác nhau khi sử dụng hàm gets(hoten) khi hoten là biến con trỏ và khi đó là chuỗi ký tự.

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    20

    Mặc định Sự khác nhau khi sử dụng hàm gets(hoten) khi hoten là biến con trỏ và khi đó là chuỗi ký tự.

    Mình có thắc mắc một vấn đề nữa.
    Ví dụ 1:
    Char hoten[20]
    cout<<"\n Nhap ho ten \n";
    fflush(stdin);
    gets(hoten);
    Ví dụ 2:
    char* hoten= new char[20];
    cout<<"\n Nhap ho ten \n";
    fflush(stdin);
    gets(hoten);

    Mình không biết câu lệnh gets(hoten) ở 2 ví dụ trên có khác nhau hay không? Và nếu có thì khác như thế nào?Theo như mình biết thì ở ví dụ 2, dòng khai báo đầu tiên thì mình khai báo biến con trỏ hoten có kiểu char dùng để trỏ đến biến động kiểu char chứa 20 ký tự, như vậy thì khi dùng hàm gets để nhập chuỗi thì ta phải nhập gets(*hoten) chứ nhỉ vì *hoten chính là biến động kiểu char đó.

  2. #2
    Ngày gia nhập
    07 2008
    Nơi ở
    /media/Anime
    Bài viết
    2,288

    gets vẫn là gets, ko có gì khác nhau cả. char hoten[20] thực ra là 1 con trỏ const char * trỏ đến mảng char 20 phần tử. Mảng này do trình biên dịch cấp phát hard code khi biên dịch chương trình. Còn char *hoten = new char [20] cũng y như vậy, nhưng là do người code cấp phát lúc runtime.
    Càng yêu mèo thì mèo càng mập. Mèo càng mập ta lại càng yêu.

  3. #3
    Ngày gia nhập
    11 2011
    Nơi ở
    Tp. HCM
    Bài viết
    0

    Vậy là đúng oy` đó bạn. Khi bạn xin cấp phát biến con trỏ kiểu char* hoten=new char[20] thì máy sẽ cấp cho bạn nhiều địa chỉ ô nhớ (cụ thể là 20 ô nhớ - gấp 20 lần char) và ô nhớ đầu được gán cho hoten[0]

Các đề tài tương tự

  1. Bài tập C++ Cách để so sánh 2 chuỗi kí tự giữa chuỗi nhập từ phím và chuỗi từ file xem có giống nhau không?
    Gửi bởi davilson18 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 09-06-2012, 09:47 AM
  2. Tìm chuỗi con gồm các số giống nhau liên tiếp dài nhất của một chuỗi cho trước
    Gửi bởi dailammoc trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 8
    Bài viết cuối: 07-02-2012, 09:03 PM
  3. Lập trình tạo sổ địa chỉ điện thoại{id,hoten,dc,sdt,loai}?
    Gửi bởi yeurongcon trong diễn đàn Thắc mắc chung
    Trả lời: 4
    Bài viết cuối: 04-11-2010, 08:16 PM
  4. làm sao để 2 biến Datetime trừ nhau ra biến float or double?
    Gửi bởi robocon1183 trong diễn đàn Thắc mắc Microsoft SQL Server & Microsoft Access
    Trả lời: 1
    Bài viết cuối: 10-12-2009, 05:11 PM
  5. BT Quản lý sinh viên C++. Lỗi hàm sắp xếp theo Hoten
    Gửi bởi bkhamvn trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 14-04-2009, 10:35 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn