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

Đề tài: Truy cập vùng nhớ quản lý bởi đối tượng lớp string qua data và c_str có như nhau không?

  1. #1
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Mặc định Truy cập vùng nhớ quản lý bởi đối tượng lớp string qua data và c_str có như nhau không?

    Em đang định dùng lớp string thay cho char*. Khi lập trình winsock, hàm recv(), lại yêu cầu một con trỏ char để chép dữ liệu vào.
    C++ Code:
    1. int recv(
    2.   __in   SOCKET s,
    3.   __out  char *buf,
    4.   __in   int len,
    5.   __in   int flags
    6. );
    Em định là sẽ code theo cách này:
    C++ Code:
    1.     int iLen = 1024;
    2.     string strData(iLen + 1, '\0');
    3.     recv(iSocket, (char*)strData.data(), iLen, 0);
    4. //  hoặc
    5. //  recv(iSocket, (char*)strData.c_str(), iLen, 0);
    Nhưng không biết nên dùng data() hay c_str(), ép kiểu như thế có gây tác hại gì không? Em đã test bằng memcpy thì thấy dữ liệu của strData có thay đổi. Xin các bác cho ý kiến. Tks.
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

  2. #2
    Ngày gia nhập
    07 2010
    Nơi ở
    chỗ kín
    Bài viết
    446

    ghi vậy là ổn rồi, dùng c_str hay data cũng thế, không mất dữ liệu đâu bạn ạ.

  3. #3
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Ừhm, mình đã test thêm, đúng là c_str() và data() cùng trả về 1 con trỏ đến 1 vùng dữ liệu. Nhưng chắc mình sẽ dùng c_str() vì cái tên hàm dễ liên tưởng hơn là data(). Tks for help.
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

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

  1. Database với C/C++ Cách nào tối ưu truy vấn với số lượng data lớn?
    Gửi bởi hoangminhtoan trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 0
    Bài viết cuối: 11-07-2013, 09:34 PM
  2. Cách truy vấn chọn tháng trong trương data/time?
    Gửi bởi hvcuongit trong diễn đàn Thắc mắc đại cương Database & Reporting
    Trả lời: 4
    Bài viết cuối: 28-10-2011, 07:29 PM
  3. Database Hai câu truy vấn giống nhau(logic) mà kết quả lại khác nhau??
    Gửi bởi kqphu trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 15-10-2011, 11:50 AM
  4. Sử dụng LINQ to XML để truy vấn XML data, giúp mình
    Gửi bởi baotran trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 15
    Bài viết cuối: 01-04-2011, 05:34 PM
  5. string và String khác nhau như thế nào?
    Gửi bởi mitsumi82 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 22
    Bài viết cuối: 25-12-2009, 11:50 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