728x90

에러 모음 14

중단점을 트리거 했습니다.

1.상황동적할당 한 것을 해제한 뒤 발생. 이유동적할당한 사이즈랑 해제한 사이즈가 다를 때 발생. (뭔가 짜증나는 오류는 간단하게나마 기록해두려고 함.) 2. 상황 포인터에 스택 메모리 주소를 넣고 해제함 이유free()로 해제하는 메모리는 heap공간이어야지 stack공간이면 안된다. 3.상황 함수의 인자를 포인터로 넘겨주고 전체 크기를 계산하려 할 때 이유포인터도 변수이므로 함수의 인자로 넘겨받은 주소도 새로운 곳에 저장되어 있기 떄문에 인수로 넘겨받은 포인터로는 전체 사이즈를 _msize함수로도 계산할 수 없다. 4. 상황동적 할당에 실패했을 때???

에러 모음 2018.06.08

4*(a)를 4(a)로 잘못 썼을 때 나왔던 에러

#define discriminant(a,b,c) (((b)*(b))-(4(a)*(c)))라는 매크로 함수를 double a = 1, b = 1, c=1;discriminant(a, b, c);이렇게 호출했는데 명백한 호출의 괄호 앞에 오는 식에는 함수 (포인터) 형식이 있어야 합니다.항은 1개의 인수를 받아들이는 함수로 계산되지 않습니다.이런 에러가 뜹니다. // 에러가 난 이유 자체는 간단하다. 4*(a)라고 써야할 식을 4(a)로 써서 그렇다.// 컴파일러가 4(a)를 함수 호출식으로 생각해서 에러를 보여줬다는 뜻이다.

에러 모음 2018.06.03

VS2017의 C++환경에서는 문자열을 문자형 포인터로 받을 수 없다. (해결방법 추가)

//제목처럼 말해도 되는지 정확히는 모르겠다. #include void strdsp1(char* pt); void strdsp2(char str[]); int main() { char s1[] = "배열 형태의 문자열"; char* s2 = "abcd"; strdsp1(s1); strdsp2(s2); } void strdsp1(char* pt) { printf("%s \n", pt); } void strdsp2(char str[]) { printf("%s \n", str); }//C환경에서는 가능하지만 C++환경에서는 안되는 예제. 이런식으로 문자열 처리하는건 그냥 넘어가도록 하자. // 문자열은 const char이므로 const char*로 받으면 된다.

에러 모음 2018.05.18
반응형