Tôi có mã bên dưới.C được phân bổ con trỏ? Đây là gì?
char a[] = "abcde";
char *b = "fghij";
char *c = malloc(6);
char *d = c;
c = "klmno";
Và các quốc gia tập thể dục:
Vẽ một bức tranh về cấu trúc dữ liệu a, b, c và d (với nội dung), nơi bạn có thể xem những gì đã được phân bổ và sử dụng mũi tên để hiển thị cách con trỏ được đặt.
giải pháp của tôi là:
____________
a -> |a|b|c|d|e|\0|
¨¨¨¨¨¨¨¨¨¨¨¨
____________
b -> |f|g|h|i|j|\0|
¨¨¨¨¨¨¨¨¨¨¨¨
____________
c -> |k|l|m|n|o|\0|
¨¨¨¨¨¨¨¨¨¨¨¨
___________
d -> | | | | | | |
¨¨¨¨¨¨¨¨¨¨¨
Tuy nhiên giải pháp của tôi không được chấp nhận và phản ứng là "phân bổ bộ nhớ cho một con trỏ đến b, c, d nhưng không phải là một". Ai đó có thể giải thích cho tôi điều này có nghĩa gì không?
Không rõ câu hỏi của bạn là câu trả lời của bạn và điều gì đã xảy ra với nó. Hãy cố gắng nói lại nó để làm cho nó dễ hiểu hơn. – Neowizard
@karlphillip, c không được lấp đầy, nó đã được gán lại. – Neowizard
Không, nội dung của 'c' được ** không ** sao chép thành' d'. –