30/09/2018, 16:03

Cùng đặt vấn đề nào (bản số 2)

Is there any problem?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void myfunction(char *q){
     memcpy (q ,"hello",5);
}

int main(){
     char * p;
     myfunction(p);
     printf(p);
}
Nguyễn Minh Dũng viết 18:11 ngày 30/09/2018

Chưa cấp phát vùng nhớ cho char * p mà đã copy dữ liệu cho nó là hành vi nguy hiểm. Vì khi đó p có thể đang trỏ tới bất kỳ đâu. Việc copy 5 bytes vào vùng không thuộc sở hữu của p có thể gây crash chương trình.

Dũng Kon viết 18:18 ngày 30/09/2018

Chính xác, câu này không khó lắm để em post câu khác

Nguyễn Minh Dũng viết 18:08 ngày 30/09/2018

Hôm nay @Dung_Kon toàn post mấy câu khó khó không Tới giờ nghỉ trưa a mới có thời gian coi hết. Mà toàn mấy câu hay hay liên quan đến kiến thức C cực kỳ cơ bản.

Phạm Hữu Trí viết 18:19 ngày 30/09/2018

Cho em hỏi câu này mà muốn sửa thì phải sửa ntn ạ?

rogp10 viết 18:09 ngày 30/09/2018

Chỉ có sửa lại thành char[50] thôi chứ để * là văng, vì không trỏ đến mem hợp lệ.

Bài liên quan
0