그래서 오늘 포인터로 놀고 있었고 다소 혼란스러운 곤경에 처했습니다. 나는 C를 많이 사용하지만 이것이 왜 그 당시에는 효과가 없었는지 알 수 없었다.C 포인터 할당
#include <stdio.h>
#include <stdlib.h>
void subr(int* numero){
int* newNum = malloc(sizeof(int));
(*newNum) = 5;
numero = newNum;
printf("%d\n", *numero);
}
int main(){
int* number;
printf("%p\n", (void *) number);
subr(number);
if(number == NULL)
printf("Not assigned\n");
else
printf("%d\n", *number);
}
그래서 나는 공간을 할당하는 함수에 전달할 주에있는 포인터를 만든 다음 다시 전달 된 포인터에 할당합니다. 왜 내가 포인터가 여전히 null 인 것을 얻을 내가 이것을 실행하는 것이 매번입니다 ?
다음 INT ** numero'와'* NUMERO = newNum'너무;'와'SUBR (& 번호); 또는 포인터에 대한 참조가 더 간단하므로'int * & numero' 만 변경하면됩니다. –
메인 등의 2 행에서 정의되지 않은 동작이 없습니다. – deviantfan
포인터가 순수한 기회로 NULL이됩니다. – juanchopanza