Khi tôi cố gắng chạy đoạn mã sau, tôi nhận được lỗi seg. Tôi đã thử chạy nó thông qua gdb, và tôi hiểu rằng lỗi đang xảy ra như một phần của gọi printf
, nhưng tôi bị mất là tại sao chính xác nó không hoạt động.Chương trình bị treo khi tôi cho printf một con trỏ tới mảng char
#include <stdlib.h>
#include <stdio.h>
int main() {
char c[5] = "Test";
char *type = NULL;
type = &c[0];
printf("%s\n", *type);
}
Nếu tôi thay printf("%s\n", *type);
với printf("%s\n", c);
tôi nhận được "thử nghiệm" in như tôi mong đợi. Tại sao nó không hoạt động với một con trỏ đến mảng char?
Tôi chỉ muốn nitpick: "C" không bị lỗi vì C không phải là chương trình. Trình biên dịch của bạn không bị lỗi. *** Bạn đã sử dụng C để viết chương trình bị treo. *** –
Bạn đúng là David. Tôi biết những gì tôi muốn nói, và như vậy bạn, rõ ràng, nhưng điều quan trọng là phải chính xác khi thảo luận về những thứ này. – WhiteHotLoveTiger
Thay đổi '% s' thành'% c' để xem 'c [0]' – wulfgarpro