프로그래밍 QnA

ijs0430의 이미지

valgrind --tool=massif ms_print 내용 자세히 설명 부탁드립니다.

보여드린 사진이 지금 제가 massif 툴 옵션으로 valgrind 실행한 내용이고 출력 결과를 ms_print로 찍어낸 모습입니다.
지금 전체 메모리에서 97.77%만큼이 malloc, new 함수로 동적메모리를 할당하는데 쓰여졌다는 내용인가요?
그리고 아래 각 함수별로 몇프로만큼 계속 썼었는지 보여주는게맞나요?
51%만큼 so파일들을 불러오는데 사용했고, 그 마지막에서는 mail함수에서 25.72%만큼 메로리를 할당받아 사용했다 뭐 이런뜻이 맞나요???????

그리고 스냅샷마다 total(B) useful-heap(B) Extra-heap(B) 를 보여주는데 저 각각의 의미가 뭔가요?
useful-heap이 실제 사용된 할당받은 메모리인가여? 그렇다면 Extra heap은 어떤걸 의미하나요?

wtwon의 이미지

포인터 변수 주소와 일반 변수 주소의 차이는 왜 12바이트인가요?

안녕하세요, 포인터를 복습하는 도중에 의문이 들어 질문글 올립니다.

int b = 10;
int *p1 = &b;
printf("b의 주소 : %x\n", &b);
printf("p1의 주소 : %x, p1의 내용(b의 주소) : %x\n", &p1, p1);

위의 코드의 결과를 windows10 - visual studio 2015에서 출력하면,
b의 주소와 p1의 주소는 항상 12바이트의 차이를 가집니다.

결과는 다음과 같았으며,
b의 주소 : eff79c
p1의 주소 : eff790
p1의 값(b의 주소) : eff79

dlsxjsptvmfhxhzhf의 이미지

String을 받아서 모니터에 출력하는 방법 질문있습니다.


안녕하세요.

아두이노 공부를 공부하고있는 새내기 입니다.

혼자서 간단한 프로젝트를 하고 있는데 쉽지가 않아서 글을 올렸습니다.

아두이노에서 다른 부분은 오류하나없이 말끔하게 잘 진행이 되지만, 아래의 Loop 부분에서 제가 원하는 동작과

똑같은 진행이 되지 않기에 질문을 올립니다.

아래의 루프문을 돌리게 된다면, uint8_tch가 읽어들이는 1바이트의 내용을 계속적으로 mystring에 추가시킴으로써

그 값이, mystring과 encrypt1과 같다면 도어락이 동작하도록 하게 만들려고 하는데 동작이 잘 안됩니다 ㅜ

뭔가 코드가 잘못된것 같아서 시리얼 모니터에, Serial.print(mystring)을 아래의 Loop 부분의 strcmp를 비교하기전에

덩그러니 써보았지만 따로 시리얼모니터에 추가되는 부분이 없기에 아무래도 처음에 mystring에 문자열이

추가가 잘 되지 않는것 같은데 도움이 필요합니다.

윤영주@Google의 이미지

C언어 매개변수에 대해서 질문이요

유클리드 호제법 공부하다가 좀 이해가 안되서 질문드립니다.

ijs0430의 이미지

valgrind 사용중 툴 사용시 오류 나는 이유?

valgrind 사용시
valgirnd --memcheck 바이너리
valgrind --massif 바이너리
위와 같이 사용할때는 정상적으로 되는데요

addrcheck나 chachgrind 혹은 callgrind 같은 툴을 사용할때는 아래와 같은 오류메시지가 뜨는데
혹시 왜그런지 아시나요
faild to start tool addrcheck for platform x86-linux

ha3k1e의 이미지

cat redirection 구현할 때, EOF 처리 방법

리눅스 환경에서,

child process에서 cat을 하고 그 결과를 parent process에서 읽게하려 합니다.

dup2()로 연결해서 stdin으로 read하도록 했습니다만,
문제는 파일 read는 잘하는데, 파일 내용을 다 읽었음에도 끝나지 않고 이상한 내용을 더 읽습니다.

(완전히 쓰레기 값은 아니고 textfile의 중간부분부터 끝 부분까지 반복되는 내용이지만 끝을 읽지 못하는게 문제입니다.)

뒤에서 줄 띄움표를 기준으로 다른 처리를 해줄 것인데,
뒤의 쓰레기 값 때문에 에러가 나게 됩니다.

while (read(STDIN_FILENO, str, READSIZE))

이렇게 읽는데 EOF를 읽을 수 있는 방법이 없을까요.
도움을 주시면 감사하겠습니다.ㅠㅠ
1 byte씩은 너무 비효율 적이라 불가능합니다.

ijs0430의 이미지

valgrind에서 leak summary 부분 항목 별로 아시나요?

==27787== LEAK SUMMARY:
==27787== definitely lost: 10 bytes in 1 blocks
==27787== indirectly lost: 0 bytes in 0 blocks
==27787== possibly lost: 0 bytes in 0 blocks
==27787== still reachable: 0 bytes in 0 blocks
==27787== suppressed: 0 bytes in 0 blocks

위에서 definitely lost는 명확하게 누수가 있는 걸로 대부분, 저 항목으로 누수를 체크한다고 알고있구요.
indirectly lost 그 아래 각 항목 별로 정확히 어떠한 의미인지 아시면 자세한 설명
부탁드리겟습니다.

익명 사용자의 이미지

for문의 init에 대해서...

quit = n;
 
while(quit > 0){
    //배열 값 변경//
 
    for(int i = 0, quit = n; i < n; i++) //문제가 되는 부분
        if(p[i][i] == 0)
	    quit--;
}

for문 끝난 후 quit값을 출력해보니까 n-1값이 출력되고 계속 무한루프돌길래

for문 안에 있는 quit = n을 for문 위로 빼니까 정상적으로 작동되더라고요

제가 for문의 init을 잘못 이해하고 있는 것 같은데

설명 좀 해주실 수 있으신가요?

개성만점의 이미지

[C언어 입문] 쓰레기값에 대한 질문..

안녕하세요? c언어와 싸우는 비전공자 입문자입니다. ^^

변수를 선언만 하고 초기화 하지 않으면 쓰레기값이 된다고 c언어 책에서 그랬습니다.
실제 예제를 보니 진짜 초기화하지 않은 값은 쓰레기가 들어있었습니다.

그런데,
제가 예제를 좀 바꾸어봤거든요? 크게 바꾼건 없고 순서를 좀 바꾸어봤는데..
버그가 생겼다그러고 비주얼스튜디오가 자꾸 멈칫멈칫 해서 자꾸 끄고키고 반복했습니다.
그리고 빌드 성공이라 뜨는데 콘솔창은 텅 비어있네요..

페이지

프로그래밍 QnA 구독하기