나는 아마도 뭔가 바보 같은 짓을하고있을 것이다. 그러나 C++로 작업 한 이후로 얼마간은 sprintf가 호출 될 때 어떤 이유로 액세스 위반이 계속 발생했다.왜이 액세스 위반이 발생합니까?
char *value, *result;
int len;
result = "";
mgr.GetObjValue(0, value, len);
for (int i = 0; i < len; i++)
{
sprintf(result, "%s %X", result, value[i]);
}
printf("ObjVal: %s\n\n", result);
사람이 GetObjValue가 무엇을 궁금해하는 경우, 그것은 단지 내가 사용하고있는 API에서 SNMP 개체 값을 검색 : 어쨌든, 여기에 내가 사용하고 코드입니다. 어떤 도움이 많이 문제는 여기에있다
사실 공간이 전혀 예약되어 있지 않습니다. 'result'는 정적 메모리를 가리 킵니다 ... – filmor
@chris - 실제로는 하나의 문자가 아닙니다 - 결과는 매달려있는 포인터입니다. – user93353
@filmor, 네가 맞아. 나는 똑바로 생각하지 않아. 한 문자라도 겹쳐 쓰는 것은 좋지 않습니다. – chris