#include <stdio.h>
#include <string.h>
#include <windows.h>
#include <conio.h>
void main(){
void generateId(char*, char*);
char name[20];
char id[7];
printf("Enter your name: ");
scanf("%s", name);
generateId(name, id);
}
void generateId(char *name, char *id){
char *ptrName = name;
char *ptrId = id;
puts(ptrName);//crashes if i used puts(*ptrName);
}
有人可以向我解釋上面的註釋行嗎?爲什麼程序崩潰時會給出小於20的有效輸入,如果我嘗試解引用指針?但是當我沒有解引用指針時,它並沒有崩潰。如果我解除引用,它不應該給我輸入的價值嗎?但是如果我不解除引用,它如何給我帶來價值?C指針解引用
如果你編寫'puts(ptrName)',它甚至不應該編譯... –