프로그래밍 QnA

greathero의 이미지

C++에서 객체의 정적/동적 할당에 대해 궁금한게 있습니다 ㅎ

A라는 클래스가 있고 A 타입의 객체를 사용할 때,

A aObj; <- 이게 정적으로 객체를 할당한거고
A* ap = new A(); <- 이게 동적으로 할당한거잖아요.

포인터 객체를 쓰면 어느 코드를 거쳐도 "delete를 하지 않는 이상" 객체가 살아있으니까
따라서 객체를 계속 살려두고 싶고 유연하게 조작할려면 포인터 객체를 쓰면 좋을거 같긴 합니다.

그런데, aObj 처럼 일반적인 객체를 aObj& 타입의 매개변수를 받는 함수에 넣어줘도 객체를 보전은 할 수 있잖아요.
물론 특정 scope를 넘어가면(A aObj가 선언된 곳의 block statement가 끝나면) stack에 있는 aObj의 정보는 사라지겠지만..
(제가 지금 제대로 알고있는거 맞나요?)

여튼, 객체를 언제 정적 할당 혹은 동적 할당하는게 좋은지를 제대로 알고싶습니다!
배열같은 경우는 메모리를 얼마 쓸지를 몰라서 동적 할당하는 것이 좋다. 뭐 이런건 알고있지만;

trymp의 이미지

IP 주소를 검색할 때 사용할 TREE 자료구조 소스를 찾고 있습니다.


제가 IP주소를 이용해서 관련 data 를 search 할 자료구조를 만들려고 하는데요.

radix tree 나 RB tree 가 유용할 것 같아서 관련 소스를 찾고 있습니다.

근데 자바나 파이썬으로 많은데 의외로 C 소스로 찾기가 어렵더군요

있더라도 어떤 프로그램에 종속적으로 쓰이는 코드가 많아서...-,.-

그래서 심풀하게 범용적으로 쓸수 있는 C 소스코드를 찾고 있습니다.

radix 나 RB tree 관련해서 아시는 분 조언해주시면 감사하겠습니다.

nampang0925의 이미지

NS2 관련 질문있어서 질문 올립니다.

NS2를 이용하여 MAC 프로토콜 구현을 하고 있는데 Timer를 이용하여 일정 시간되면 타이머를 작동하게 만들려고합니다. 소스코드는 ~/ns-allinone-2.35/ns-2.35/mac mac-802_11.cc 파일에 코드를 추가하려고 합니다. 타이머를 어떻게 동작 시켜야 하는지 몰라서 NS2 공부하시는분들 중에 이벤트 스케줄러/ 타이머 관련해서 아시는 분들한테 가르침을 좀 받고 싶습니다. 메일이나 댓글 달아주시면 감사하겠습니다.

-J

asleea의 이미지

간단한 프로그램 문제 질문

밑의 두 함수는 사용자 입력으로 char buf에 String 값으로 16진수 값을 주면그 값을 실제 16진수 값으로 변경하여 byte단위로 저장하도록하고, 그 바이트 단위로 저장된 hex값을 출력하는 각각의 함수입니다.

그런데 HexStringToBytes함수중 (1)번을 보면 2로 나누어 떨어지지 않으면 잘못된 값으로 인식을 하는데 사용자 입력으로 만약 1234를 입력하면 개항문자가 합처져

strlen는 5나오는 것으로 알고 있어 이상하게 생각하여 test를 해보았습니다.

그런데 이상한 현상이 발생합니다. 입력으로 1234 입력시 main문의 출력결과 rtn값은 예상대로 5가 나왔지만 strlen값이 12가 나왔습니다.(main함수의 (2)부분)

그리고 main문에 hexStringToByte, print_in_hexa함수 호출을 주석처리 하고 실행을 하면 예상대로 rtn = 5, strlen = 5가 나옵니다.

왜 이러는지 .ㅜㅜㅜㅜ

/////////////////////////////////////////main문의 두 함수 호출을 주석 처리시 출력 결과

ndh1868의 이미지

C언어 문제 하나만 도와주시면 안될까요

음이 아닌 정수를 인자로 받아 홀짝을 판별하는 함수 even과 odd를 서로가 서로를 이용해서 다음과 같이 정의하였다.

typedef int bool;

bool even(int n)
{
return odd(n-1);
{

bool odd(int n)
{
return even(n-1);
}

위 함수 정의가 틀린 이유를 설명하고 올바르게 고쳐라
(서로가 서로를 이용해 정의하도록 해야 한다)

-----------------------------------------------------

gkdlska1004의 이미지

make install 시, ERROR: modinfo: could not find module "..." 납니다.. 도와주세욤

리눅스 초보입니다.
centos 6.3 minimal을 설치한 상태입니다.
kernel-2.6.32-279.el6.src.rpm 다운받아 PC에 맞는 최적화된 커널을 만들려고 하는데 Error 가 발생합니다.
1. 작업방법
make menuconfig에서 설정을 바꿔준 후 make -> make modoules_install -> make install 했더니 아래와 같은 Error 가 발생합니다.
2. Error 내용
ERROR: modinfo: could not find module ip6t_REJECT
ERROR: modinfo: could not find module nf_conntrack_ipv6
ERROR: modinfo: could not find module nf_defrag_ipv6
ERROR: modinfo: could not find module ip6table_filter
ERROR: modinfo: could not find module ip6_tables

trymp의 이미지

libevent 의 evsignal_new 에서 등록되는 함수가 signal 함수 인가요?

libevent 의 evsignal_new() 로 등록되는 CB() 함수가 일반적으로 signal() 로 말하는 함수인가요?

아니면 signal 이 온 후 적당한 타이밍에 실행시켜 주는 함수인지 궁금합니다.

signla safe 한 프로그램을 짜려고 하는데, 저 함수의 callback()이 어떤 식으로 불리는지

궁금해서요.

아시는 분 코맨트 달아주시면 감사하겠습니다.

canuyes의 이미지

prim 알고리즘 관련 질문입니다.

최소 스패닝 트리를 배우면서 prim 알고리즘을 접하게 되었습니다.
알고리즘의 작동 과정은 이해를 하였으나 책에 나와 있는 C 소스 코드에 몇가지 질문이 있어 올려봅니다.
참고 중인 책에는 주석이 하나도 달려있지 않아 이해가 어려웠기 때문입니다,

책에서는 인접 리스트를 이용하여 그래프를 표현하고 스패닝 트리를 만드는 내용이 설명되어 있습니다.
소스코드에 fringes, precedences 라는 변수명이 아무 주석도 없이 등장합니다.
꽤나 정형화(?)된 변수명이기에 주석이 없었으리라 생각됩니다.
조금은 어이없는 질문이지만 혹시 여기에 prim 알고리즘에서
fringes, precedences 변수가 어떤 역할을 하는지 아시는 분 있으신가요?

혹시 몰라 소스코드 첨부합니다.
책은 박상현님의 뇌를 자극하는 알고리즘 입니다.

런맨의 이미지

free가 되는건지 궁금합니다.

static void imageProcess(const void* p)
{
  unsigned char* src = (unsigned char*)p;
  unsigned char* dst = malloc(width*height*3*sizeof(char));
 
  // convert from YUV422 to RGB888
  YUV422toRGB888(width,height,src,dst);
 
  // write jpeg
  jpegWrite(dst);
}

이런 함수가 있는데 변수 선언할때 malloc하면 *dst를 free안해줘도

함수가 종료 되면 저절로 free되는건가요? 따로 free해주는 곳이 없던데

갑자기 헷갈리네요. 알려주시면 감사하겠습니다.

emeraldrhapsody의 이미지

sendto error에 대해서 질문드려요..

지금 리눅스와 윈도우간 udp통신을 하려고 합니다.

sendto를 호출하게 되면 자동으로 bind하는걸로 알고 있었는데..

일단은 bind까지 했는데도 sendto에서 리턴값이 -1이 나옵니다.

페이지

프로그래밍 QnA 구독하기