Trong khi tôi đang làm việc trên một bài tập, tôi đến để biết rằng chúng ta không nên sử dụng bài tập như:Tại sao chúng ta cần strdup()?
char *s="HELLO WORLD";
Programs sử dụng cú pháp như vậy có xu hướng hướng tới đâm.
tôi đã cố gắng và đã sử dụng:
int fun(char *temp)
{
// do sum operation on temp
// print temp.
}
fun("HELLO WORLD");
Ngay cả những công trình ở trên (mặc dù đầu ra là trình biên dịch và tiêu chuẩn cụ thể).
Thay vào đó chúng ta nên cố gắng strdup() hoặc sử dụng const char *
Tôi đã thử đọc câu hỏi tương tự khác trên blog, nhưng anh ta lại quan niệm rằng TẠI SAO TRÊN MÃ should not LÀM VIỆC.
Bộ nhớ được cấp phát ?? Và những gì khác biệt const làm cho ??
Gợi ý: 'const char *' có nghĩa là gì trên 'char *' và tại sao việc sử dụng nó ở trên có lợi (ví dụ: cách * có thể truy cập * hoặc * sửa đổi * s1 "gây ra sự cố")? Strdup là gì cho phép một để làm với 'const char *'? –
'char * s =" HELLO WORLD "' là một khởi tạo, không phải là một nhiệm vụ. Dù sao tại sao bạn nghĩ rằng nó là xấu? – qrdl