프로그래밍 QnA

min2to의 이미지

2차원배열 포인터 질문 좀..

포인터 좀 자세히 알려고자 질문 좀 드릴꼐여~;;

#include

main ()
{

int ttt[3][2] = {{6,3}, {5, 9} , {8, 2}};
int (*ppp)[2] = ttt;

printf("ppp+0값 %d\n", ppp + 0);
printf("ppp+1값 %d\n", ppp + 1);
printf("ppp+2값 %d\n", ppp + 2);

printf("*(ppp + 0)값 %d\n", *(ppp + 0));
printf("*(ppp + 1)값 %d\n", *(ppp + 1));
printf("*(ppp + 2)값 %d\n", *(ppp + 2));
}

ppp+0값 -1073747184
ppp+1값 -1073747176
ppp+2값 -1073747168
*(ppp + 0)값 -1073747184
*(ppp + 1)값 -1073747176
*(ppp + 2)값 -1073747168

이런식의 답이 나오더군여 이해는 했는데 여기에다가 sizeof 연산자를 대입해보니..

우주의 이미지

디바이스가 close가 안됩니다...???

어플리케이션 초기화 부분에서 아래와 같이 system펑션으로 neta.exe를 실행시켜 놓습니다.
system("/neta.exe &");

그리고 필요에 의해 비디오 디바이스를 close시키는데 디바이스 드라이버로 close가 전달이 안됩니다.

그래서 원인을 살펴보던 중 neta.exe를 실행시키지 않고 디바이스를 close해보니 그때는 close가 잘 됩니다.

이런 경우가 발생하는 이유나 해결책을 아시는 분 계신가요?
도움을 부탁드립니다.

superkkt의 이미지

프로세스간에 하나의 변수를 공유해야할때 어떤 방법이 가장 좋은가요?

클라이언트 접속시 fork하는 구조로 이루어져있습니다. 이 상태에서 메인 프로세스와 자식 프로세스들 간에 하나의 변수(현재 클라이언트의 개수를 저장하는 변수)를 공유해야 합니다.

IPC에 관해서 책을 뒤져봤는데 공유메모리를 사용하는 방법이 있더군요. 그런데 단지 int 변수 한개를 공유하려고하는데 공유메모리는 shmget(), shmctl() 등 좀 복잡한것 같습니다. 이 방법외에 다른 간단한 방법은 없나요?

쓰레드를 사용하면 글로벌변수가 자동으로 공유가 되니까 참 편한던데요...

wafe의 이미지

안전하게 this의 shared_ptr 얻는 방법?

class MyClass
{
public:
  void AddToList(MyClassList &list)
  {
    // 바로 이부분!
    list.push_back(this);
  }
};

typedef boost::shared_ptr<MyClass> MyClassPtr;
typedef std::list<MyClassPtr> MyClassList;

...

MyClassList newList;
MyClassPtr newInst(new MyClass());
newInst->AddToList(newList);

이런 코드가 있을 때 표시해 놓은 부분의 코드를 어떻게 써야할 지 모르겠습니다.

list.push_back(MyClassPtr(this));

라고 쓰면 문법적으로는 맞지만 인스턴스 하나를 가지고 shared_ptr 두 개를 만들게 되어 문제가 생기죠.
개똥이의 이미지

wait() waitpid()에 대해서 ...

wait()는 종료된 자식 프로세스가 있을때만 반환을 하는것인지요?

보고 있는 책에는 "실행을 멈춰버린다." 이렇게 표현을 해놔서..

프로그램에서 wait()전까지 실행되다 wait()에서 종료한

자식프로세스가 있을때 까지 기다린다란 표현이가요?

음... 그리고 waitpid()사용에 있어서 pid_t pid = waitpid(pid int,

*status,options) pid int 부분이 종료 했는지를 알아볼 pid인데

-1를 넣는 경우는 어떤경우죠? 모든프로세스?? 자식프로세스??

vudghkzm의 이미지

php와 자바에서 ipv4 인지 ipv6 인지 쉽게 구분할 수 있는 방법이 있나요?

아이피가 문자열형태로 전달되어 집니다. (예 : 123.456.789.000 이런식으로 말이죠.)
근데 이 아이피가 v4 형태인지 v6 형태인지를 파악해서 다르게 처리해야 합니다.

php와 자바에서 각각 아이피가 v4 인지 v6인지 쉽게 파악할 수 있는 방법이 어떤게 있는지 궁금합니다.

preppiepjh의 이미지

특정포트로 연결이 안되는 경우, 방화벽에 의한 것인지. 서버 문제인지. 확인방법이 있을까요?

안녕하세요?^^

제가 이번에 서버를 구축하면서..
유동아이피 환경에서는 80포트에 HTTP데몬이 떠있음에도 불구하고
80포트가 막혀있을 수 있다는 것을 알았습니다. ㅡ.,ㅡ;;

그것도 모르고 몇일을 고생했었어요~;;

혹시

해당 포트가 방화벽에 의해 막혀있는 경우인지, 아니면, 해당포트를 사용하는 서버 자체가 없어서 연결이 안되는 것인지 구별할 수 있는 방법이 있을까요??

Geniys의 이미지

다음과 같은 C 코드를 보신적이 있으신가요?

main(argc, argv)
int argc;
char *argv[];

{
FILE *stream;
int n, m, i, j, k, k2;
float **data, **matrix(), **symmat, **symmat2, *vector(), *evals, *interm;
void free_matrix(), free_vector(), corcol(), covcol(), scpcol();
void tred2(), tqli();
float in_value;
char option, *strncpy();

...울라불라...
}

전 저런식으로 되어 있는 코드를 본적이 없는데 오래된 C 형식이라 하더군요.
어떤식으로 컴파일을 해야 할지 궁금합니다. ^^

yamakasi82의 이미지

[질문] windows visual C++에서는 되고 우분투 리눅스 gcc에서는 안되는것 ???

안녕하세요 윈도우즈에서 프로그래밍을 하다 이번에 우분투 리눅스에서 gcc로 프로그래밍

을 하려고 준비하고 있습니다. 그런데 제가 윈도우즈 에서 도스 프로그래밍을 할때 자주 쓰

쓰던 문자열 입력 함수에서 자꾸 버퍼문제가 발생해서 이렇게 질문 올립니다. 보통 gets(),

fgets()함수를 쓸때 버퍼 문제 때문에 fflush(stdin)으로 표준입력스트림의 버퍼를 비워 주

었는데요 gcc에서는 버퍼가 비워지질 않네요 그래서 책의 예제를 그대로 해 보았지만 역시

CS의 이미지

int 곱셈의 overflow 처리

기본적인 질문입니다만…

예를 들어 int32형 변수에 1000을 곱해서 overflow가 발생했을시,

struct int64 {
Uint32 lowpart;
Uint32 highpart;
};
에 나눠서 저장하려 합니다만…

도저히 방법이 떠오르질 않네요.
좋은 방법 부탁드립니다.

페이지

프로그래밍 QnA 구독하기