얘들 아 내가 이런 char 형의 동적 할당을하려고, C에서 프로그래밍 해요 :의 malloc 반환 무효
char **word1 = malloc(sizeof(char *)* 1);
char **word2 = malloc(sizeof(char *) * 1);
을하지만 그 같은 에로을 결과입니다 : 무효 '에서 유효하지 않은 변환 * '~'char ** '[-fupermissive]
나를 도와주는 모든 사람에게 감사드립니다.
얘들 아 내가 이런 char 형의 동적 할당을하려고, C에서 프로그래밍 해요 :의 malloc 반환 무효
char **word1 = malloc(sizeof(char *)* 1);
char **word2 = malloc(sizeof(char *) * 1);
을하지만 그 같은 에로을 결과입니다 : 무효 '에서 유효하지 않은 변환 * '~'char ** '[-fupermissive]
나를 도와주는 모든 사람에게 감사드립니다.
c
컴파일러 [gcc
]에서이 오류가 표시되지 않습니다.
c++
컴파일러 [g++
]에서이 오류가 발생할 수 있습니다.
c
컴파일러를 사용하거나,이 없애.c++
컴파일러를 사용하고 malloc()
반환 값으로 char **
캐스트를 추가하십시오.참고 : IMO는 1 위를 차지하십시오. 그것은 좋은 연습 neither to use malloc()
family in c++
아니며 casting the return의 malloc()
도 아니야.
교양있는 추측 : C++ 컴파일러를 사용 중입니다. C는 void*
에서 다른 포인터 유형으로의 캐스트를 필요로하지 않지만 C++
은 캐스트를 필요로하지 않습니다.
C 컴파일러를 사용하거나 malloc
에 의해 반환 된 값을 캐스팅하는 것을 고려하십시오.
"C 컴파일러를 사용하거나 malloc에서 반환 한 값을 캐스팅하는 것을 고려하십시오." * 둘 다 아니야 !! * – Roddy
그 중 하나가 강조되어야하는 것입니다, Roddy. –
malloc은'void *'를 반환합니다.'char *'에 캐스팅 할 필요가 있으면 등호 뒤에'(char *)'를 넣으십시오. –
그렇다면 C 코드를 컴파일하는 것이 아니라 C++ 코드를 컴파일 할 가능성이 높습니다. 그리고 만약 C++을 프로그래밍한다면'malloc' /'free'를 사용해서는 안됩니다. 요즘에는 C++에서 포인터를 거의 사용하지 않아도됩니다. –
는 C++ 컴파일러의 오류와 비슷합니다. – sgarizvi