반응형

C 117

printf의 %s 지정자를 사용하여 NULL을 인쇄하는 동작은 무엇입니까?

printf의 %s 지정자를 사용하여 NULL을 인쇄하는 동작은 무엇입니까? 흥미로운 인터뷰 질문을 받았습니다. test 1: printf("test %s\n", NULL); printf("test %s\n", NULL); prints: test (null) test (null) test 2: printf("%s\n", NULL); printf("%s\n", NULL); prints Segmentation fault (core dumped) 시스템에 따라서는 정상적으로 동작하는 경우도 있습니다만, 적어도 세그멘테이션의 장해가 발생하고 있습니다.이 행동에 대한 가장 좋은 설명은 무엇입니까?위의 코드는 C입니다. 다음은 제 gcc 정보입니다. deep@deep:~$ gcc --version gcc (Ubun..

sourcecode 2022.08.30

알고리즘: 어레이에서 중복 정수를 효율적으로 삭제하는 방법

알고리즘: 어레이에서 중복 정수를 효율적으로 삭제하는 방법 나는 마이크로소프트와의 인터뷰에서 이 문제를 얻었다. 임의의 정수 배열을 지정하면 중복된 번호를 삭제하고 원래 배열의 고유 번호를 반환하는 알고리즘을 C에 작성합니다. 입력: :: 력:{4, 8, 4, 1, 1, 2, 9} ★★★★★{4, 8, 1, 2, 9, ?, ?} 한 가지 주의할 점은 예상되는 알고리즘에서 어레이를 먼저 정렬할 필요가 없다는 것입니다.그리고 요소가 제거되면 다음 요소도 앞으로 이동해야 합니다.어쨌든 요소가 앞으로 이동된 배열의 끝부분에 있는 요소의 값은 무시할 수 있습니다. 업데이트: 결과는 원래 배열로 반환되어야 하며 도우미 데이터 구조(해시 테이블 등)는 사용하지 않아야 합니다.하지만 주문보존은 필요없다고 생각합니다. ..

sourcecode 2022.08.30

C++: 1개의 피연산자를 레지스터에 유지하는 것이 불가사의할 정도로 고속화됨

C++: 1개의 피연산자를 레지스터에 유지하는 것이 불가사의할 정도로 고속화됨 다음 코드를 사용하여 어레이 요소를 스케일링하고 합산하는 루틴을 타이밍으로 설정함으로써 어레이가 L1 캐시와 메모리에 미치는 영향에 대한 아이디어를 얻으려고 했습니다(마지막에는 a로 결과를 스케일링해야 한다는 것을 알고 있습니다.중요한 것은 루프 내에서 곱셈과 덧셈을 모두 실행하는 것입니다).지금까지 컴파일러는 파악하지 못했습니다.'a'를 제외한다: double sum(double a,double* X,int size) { double total = 0.0; for(int i = 0; i < size; ++i) { total += a*X[i]; } return total; } #define KB 1024 int main() {..

sourcecode 2022.08.29

왜 numpy가 Python의 ctype보다 매트릭스 곱셈이 빠를까요?

왜 numpy가 Python의 ctype보다 매트릭스 곱셈이 빠를까요? 행렬 곱셈을 가장 빨리 할 수 있는 방법을 알아내려고 세 가지 방법을 시도했습니다. 순수 Python 구현: 놀라운 점은 없습니다. Numpy를 사용한 numpy.dot(a, b) 'C'를 ctypes【피톤】 공유 라이브러리로 변환되는 C 코드는 다음과 같습니다. #include #include void matmult(float* a, float* b, float* c, int n) { int i = 0; int j = 0; int k = 0; /*float* c = malloc(nay * sizeof(float));*/ for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { int sub = 0..

sourcecode 2022.08.29

c와 c++의 컨텍스트에서 static 변수, auto 변수, global 변수 및 local 변수의 차이

c와 c++의 컨텍스트에서 static 변수, auto 변수, global 변수 및 local 변수의 차이 제가 좀 static,auto,global ★★★★★★★★★★★★★★★★★」local수입니니다다 선가 ...static변수는 함수 내에서만 액세스할 수 있지만 함수가 반환된 후에도 여전히(메모리에 저장됨) 존재합니다. 저는 또 '아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아,아.local가 있을까요?러면면 어이? ???? ????여기에는 다음 두 가지 개념이 있습니다. scope: 이름에 액세스할 수 있는 위치를 결정합니다. 저장 기간: 변수가 생성 및 삭제되는 시기를 결정합니다. 로컬 변수(패디하게 블록 범위를 가진 변수)는 선언된 코드 블록 내에서만 액세스..

sourcecode 2022.08.29

가장 작은 int인 -2147483648의 유형이 '롱'인 이유는 무엇입니까?

가장 작은 int인 -2147483648의 유형이 '롱'인 이유는 무엇입니까? 이 질문에는 이미 답변이 있습니다. 왜 0 < -0x80000000 인가요? (6개의 답변) (-2147483648)는 C++로 true를 반환합니까? (4개의 답변) 닫힘6년 전에요. 학교 프로젝트에서는 C 함수 printf를 코드화해야 합니다.일이 잘 풀리고 있지만, 좋은 답을 찾을 수 없는 질문이 하나 있어서, 여기 있습니다. printf("PRINTF(d) \t: %d\n", -2147483648); 주다gcc -Werror -Wextra -Wall error: format specifies type 'int' but the argument has type 'long' [-Werror,-Wformat] printf("P..

sourcecode 2022.08.29

GCC -g vs -g3 GDB 플래그:차이점은 무엇입니까?

GCC -g vs -g3 GDB 플래그:차이점은 무엇입니까? gcc 또는 Clang 중 하나로 C 소스 코드를 컴파일할 때는 항상-ggdb의 디버깅 정보를 생성하려면 flag를 사용합니다. gcc -g -o helloworld helloworld.c 어떤 분들은 추천해주시는 것 같아요.-g3대신.의 차이는 무엇입니까?-g그리고.-g3깃발이요? 또한 깃발과 깃발 사이에 차이가 있나요?-g그리고.-ggdb?문서에서: -g 운영 체제의 기본 형식(stabs, COFF, XCOFF 또는 DWARF 2)으로 디버깅 정보를 생성합니다.GDB는 이 디버깅 정보로 동작할 수 있습니다.stabs 형식을 사용하는 대부분의 시스템에서 -g를 사용하면 GDB에서만 사용할 수 있는 추가 디버깅 정보를 사용할 수 있습니다.이 추..

sourcecode 2022.08.29

여기서 메인 0이 반환되지 않는 이유는 무엇입니까?

여기서 메인 0이 반환되지 않는 이유는 무엇입니까? 그냥 책을 읽고 있었어요. ISO/IEC 9899:201x 위원회 초안 - 2011년 4월 12일 5.1.2.2.3 프로그램 종료에 따라 찾은 경우 ..reaching the } that terminates the main function returns a value of 0. 반환문을 지정하지 않은 경우main()프로그램이 정상적으로 실행되면 main의 closing brase}에서 0이 반환됩니다. 그러나 다음 코드에서는 반환문을 지정하지 않았지만 0을 반환하지 않습니다. #include int sum(int a,int b) { return (a + b); } int main() { int a=10; int b=5; int ans; ans=sum(a..

sourcecode 2022.08.28

Linux는 syslog를 어디에 저장합니까?

Linux는 syslog를 어디에 저장합니까? 로그 파일에 기록하기 위해 간단한 테스트 신청서를 작성했습니다.Linux mint를 사용하고 있으며 응용 프로그램이 실행된 후 다음 명령을 사용하여 로그를 표시하려고 합니다. tail -n 100 /var/log/messages 하지만 파일 메시지는 테스트된 것도 아니고 그런 것도 아닙니다.아래에서 내 코드를 찾을 수 있습니다.제가 잘못하고 있는 것 같습니다.파일이 거기에 보존되어 있지 않거나, Linux mint 로의 로그인이 유효하게 할 필요가 있습니다. #include #include #include void init_log() { setlogmask(LOG_UPTO(LOG_NOTICE)); openlog("testd",LOG_CONS | LOG_PID..

sourcecode 2022.08.28

소켓 승인 - "열린 파일이 너무 많습니다"

소켓 승인 - "열린 파일이 너무 많습니다" 저는 멀티 스레드 서버를 작성해야 했던 학교 프로젝트를 진행하고 있으며, 현재는 Apache에 대해 몇 가지 테스트를 실시하여 비교하고 있습니다.이 문제를 해결하기 위해 autobench를 사용하고 있습니다만, 몇 가지 테스트를 실행한 후 또는 접속을 확립할 수 없을 정도로 높은 레이트(약 600 이상)를 지정하면 "Too many open files" 오류가 발생합니다. '요청'을 .close()켓에꽂꽂 꽂꽂꽂다다는 이 말을 했습니다.shutdown()작동은 하지만 아무 도움도 되지 않는 것 같아요.른른른른 른른른?Linux에서 열 수 있는 파일 기술자 수를 제한할 수 있는 곳은 여러 곳 있습니다. 다음 사항을 확인할 수 있습니다. cat /proc/sys/..

sourcecode 2022.08.28
반응형