반응형

C 35

NULL 값 또는 정의되지 않은 포인터에 재할당

NULL 값 또는 정의되지 않은 포인터에 재할당 나는 책을 읽다가 거기에 언급된 요점에 대해 혼란스러워 했습니다.아래 코드를 고려하십시오. #include #include int main () { int* ptr = NULL; ptr = realloc(ptr, 10*sizeof(int)); return 0; } 메모리를 할당하는 데 위험이 있습니까?realloc처음에 사용NULL-가치가 있는ptr다음과 같은 경우: int* ptr = NULL; 나는 이것을 가지고 있었습니다. int* ptr; // no value given to ptr 전화하는 것이 문제가 될까요?realloc사용.ptr? 초기 NULL 값 ptr을 사용하여 재할당으로 메모리를 할당하는 데 위험이 있습니까? 없음. 7.22.3.5 pt..

prosource 2023.06.17

C - scanf() vs gets() vs fgets()

C - scanf() vs gets() vs fgets() 저는 일련의 문자(숫자가 입력된 것으로 가정)를 정수로 변환하는 상당히 쉬운 프로그램을 수행해 왔습니다. 제가 끝난 후, 저는 제가 대답할 수 없는 매우 특이한 "버그"들을 알아차렸습니다. 주로 어떻게 해야 하는지에 대한 제한된 지식 때문입니다.scanf(),gets()그리고.fgets()기능이 작동합니다. (하지만 저는 많은 문헌을 읽었습니다.) 따라서 너무 많은 텍스트를 작성하지 않고 프로그램 코드는 다음과 같습니다. #include #define MAX 100 int CharToInt(const char *); int main() { char str[MAX]; printf(" Enter some numbers (no spaces): "); ..

prosource 2023.06.17

다른 실행 파일이 필요한 에 실행 파일을 연결할 때 ld가 -rpath-link가 필요한 이유는 무엇입니까?

다른 실행 파일이 필요한 에 실행 파일을 연결할 때 ld가 -rpath-link가 필요한 이유는 무엇입니까? 그냥 궁금해서 그러는데요.공유 개체를 만들었습니다. gcc -o liba.so -fPIC -shared liba.c 그리고 또 하나의 공유 객체는 전자 객체와 연결됩니다. gcc -o libb.so -fPIC -shared libb.c liba.so 다음에 연결할 실행 파일을 만들 때libb.so해야 -rpath-link told를 수 .liba.so을 발견했을 때.libb.so 다릅니다. gcc -o test -Wl,-rpath-link,./ test.c libb.so 그렇지 않으면 ld가 불평할 것입니다. 는 반드시 ld의 를 찾을 수 합니까, LD의 위치를 알 수 있습니다.liba.so를 할..

prosource 2023.06.07

C 및 C++에서 인덱스[어레이]로 어레이 액세스

C 및 C++에서 인덱스[어레이]로 어레이 액세스 몇몇 면접관들이 어떤 이유로든 하기를 좋아하는 작은 속임수 질문이 있습니다. int arr[] = {1, 2, 3}; 2[arr] = 5; // does this line compile? assert(arr[2] == 5); // does this assertion fail? 제가 이해하는 바로는a[b]로 변환됨*(a + b)그리고 덧셈은 교환적이기 때문에, 그들의 순서는 별로 중요하지 않습니다.2[a]정말로*(2 + a)그리고 그것은 잘 작동합니다. 이것이 C 및/또는 C++의 사양에 따라 작동하는 것이 보장됩니까?예. 6.5.2.1 단락 1(C99 표준)은 다음과 같은 주장을 설명합니다.[]연산자: 표현식 중 하나는 "객체에 대한 포인터" 형식이어야 ..

prosource 2023.06.07

doxygen을 사용하여 코드를 문서화하기 위한 최고의 팁은 무엇입니까?

doxygen을 사용하여 코드를 문서화하기 위한 최고의 팁은 무엇입니까? 닫혔습니다. 이 질문은.여론에 입각한현재 답변을 수락하고 있지 않습니다. 마감됨7년 전에. 잠겼습니다. 이 질문과 답변은질문이 오프라인이지만 과거의 중요성이 있기 때문에 잠겼습니다.현재 새 답변이나 상호 작용을 허용하지 않습니다. 우리 팀은 공개 API 헤더에 특히 주의를 기울이면서 doxygen을 사용하여 C 코드를 문서화하기 시작했습니다.doxygen에는 많은 유연성과 다양한 특수 명령어가 있는 것으로 보이는데, 이는 훌륭하지만 시행착오 없이 무엇이 좋고 무엇이 나쁜지는 명확하지 않습니다. 코드를 표시하는 가장 좋아하는 방법은 무엇이며, 반드시 해야 할 일과 하지 말아야 할 일은 무엇입니까? 투표를 용이하게 하기 위해 답변당 1..

prosource 2023.05.13
반응형