반응형
경고: 할당은 포인터 대상 유형에서 한정자를 삭제합니다.
저는 다음 코드를 작성했습니다.
void buildArrays(char *pLastLetter[],int length[], int size, const char str[]) {
int i;
int strIndex = 0;
int letterCounter = 0;
for (i=0; i<size; i++) {
while ( (str[strIndex] != SEPERATOR) || (str[strIndex] != '\0') ) {
letterCounter++;
strIndex++;
}
pLastLetter[i] = &str[strIndex-1];
length[i] = letterCounter;
letterCounter = 0;
strIndex++;
}
}
그리고 나는 위의 경고를 받고 있습니다.pLastLetter[i] = &str[strIndex-1];
pLastLetter is a pointers array that points to a char in str[].
내가 왜 그것을 받고 어떻게 고치는지 아는 사람?
음, 당신이 직접 말했듯이,pLastLetter
의 배열입니다.char *
포인터, 동안str
의 배열입니다.const char
.그&str[strIndex-1]
식에 유형이 있습니다.const char*
할당할 수 없습니다.const char*
에 가치를 두는.char *
포인터그것은 항상 정확성의 규칙을 위반할 것입니다.사실, 당신이 하고 있는 것은 C의 오류입니다.컴파일러는 전통적으로 일부 오래된 레거시 코드를 손상시키지 않기 위한 단순한 "경고"로 보고합니다.
"고치는 방법"에 대해서는...그것은 당신이 무엇을 하려고 하는지에 달려 있습니다.둘 중 하나 만들기pLastLetter
일련의const char*
또는 제거합니다.const
부터str
.
stris const, pLast Letter는 그렇지 않습니다.이렇게 하면 const 한정자가 폐기된다는 것입니다.
언급URL : https://stackoverflow.com/questions/3479770/warning-assignment-discards-qualifiers-from-pointer-target-type
반응형
'source' 카테고리의 다른 글
PAM 연결을 위한 MySQL Workbench dialog.dll (0) | 2023.07.31 |
---|---|
ugrade 스프링 부트 2.0.0.0.RC2 예외 서블릿 컨텍스트 집합 없음 (0) | 2023.07.31 |
JavaScript 개체의 속성을 삭제/설정 해제하려면 어떻게 해야 합니까? (0) | 2023.07.31 |
IE 11의 이상한 AJAX 버그 (0) | 2023.07.31 |
CSS에서 스타일 집합을 선언할 때 "."와 "#"의 차이점은 무엇입니까? (0) | 2023.07.31 |