Đó cú pháp chỉ có hiệu lực để khởi tạo một mảng char
từ một chữ, tức là khi bạn rõ ràng viết trong mã nguồn những ký tự nào phải được đặt trong mảng.
Nếu bạn chỉ muốn một con trỏ đến nó (tức là "một tên khác" để đề cập đến nó), bạn có thể làm:
char * testvar = argv[0];
nếu thay vào đó bạn muốn có một bản sao của nó, bạn phải làm:
size_t len = strlen(argv[0]);
char * testvar = malloc(len+1);
if(testvar==NULL)
{
/* allocation failed */
}
strcpy(testvar, argv[0]);
/* ... */
free(testvar);
Nguồn
2012-01-26 11:12:27