#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)'이라고 쓰면, 컴파일하지 않아야합니다 ... –