프로그래밍 QnA

dltkddyd의 이미지

[완료]배열포인터를 포인터로 표현하려 합니다.

#include
using namespace std;

int main() {
int **a=new int*[2];//int* a[2];
*a=new int;
a[0]=new int(10);
a[1]=new int(20);
cout<<*(*(a+0))<<endl;
cout<<*(*(a+1))<<endl;
delete a[0];
delete a[1];
return 0;
}

위의 소스에서 int* a[2]가 int **a=new int*[2]와 같은 구조인가요. 그러니까 전자가 int형을 가리키는 요소 두 개의 포인터 배열을 만드는 것처럼 후자는 그런 것인지 궁금합니다. 그리고 위 소스의 이중 포인터를 해제 할 때 delete a[0], delete a[1]이라 하는 것이 맞나요? 이제 초보 딱지 떼야 하는데, 참 C++은 어렵습니다.

iamoon의 이미지

[완료] 시스템 구성에 대한 포괄적인 질문...

음.. 질문이 좀 길어질 것 같습니다. 일단, 회사와 목표에 대하여..

의료기기, 기타제조 회사 // 임베디드 기기와 PC, 스마트 디바이스로의 연결을 준비 중..

저는 주로 PC 쪽 프로그램을 하는데요, VC++, Objective-C, Python 등을 어느 정도 다룹니다.

스마트 폰/태블릿 등으로 세상이 변하는 것 같아 이번에 좀 장기적인 안목으로 OS 부터 방향설정을 다시 하려고 질문 드립니다.

일단 여러 os를 잠깐 맛만 본 제 느낌으로는..

모든 PC 프로그램은 이클립스 + 파이썬 + QT or GTK 등으로 구성하면 개발 속도도 빠르고 소기의 목적을 달성하기에 부족함이 없어 보이구요..

(실은 그동안 윈도우에 너무 지쳐, 보기도 싫거든요)..

그리고, 개발하면 윈/리눅스/맥 어디서든 돌릴 수 있으니 그것 또한 장점인 것 같구요..

하드웨어랑 연결하는 부분은 파이썬이라고 안 될리 없고, 꼭 필요해서 C나 C++을 쓰더라도 파이썬이 잘 붙여주는 것으로 알고 있구요..

고수 여러분의 조언 부탁드립니다.

jung78yw의 이미지

substring으로 변수 지정시 질문드립니다.

파일을 입력받아서 한줄씩읽어가며 데이터를 저장하는 방식인데요..
자체 sbstring(substring 기능)으로 잘라서 변수에 넣었는데...
아래 BF_DATA 값이 뒤죽박죽 섞인값이 나오네요..
"\0" 값이 안들어가서 그런것 같아 변수에 넣어도 안되네요..
데이터에 공백이 있어 그런것일수도 있는지...

CUS_NO는 아래와 같이 처리했을때 제대로 되는데..
BF_DATA 는 왜이런지 모르겠네요..
tmp4.CUS_NO.len = sprintf((char *)&tmp4.CUS_NO.arr,"%s",rtrim(sbstring(sdata4,32,45)));

dltkddyd의 이미지

특정 클래스로 선언한 포인터 배열에서

myType라는 클래스가 있습니다. 그리고 멤버요소는 int a, int b, char* str 세 개입니다. 그리고 생성자에서 이들을 초기화합니다. 그리고 다음과 같이 했는데,
int main() {
myType *ex[]={(20,40,"bear"),(123,134,"gummy")};
}

ex[0],ex[1] 이라는 myType형 객체가 제대로 만들어지지 않습니다. 컴파일 시

cannot convert 'const char*' to 'myType*' in initialization

이라는 에러메시지가 뜹니다. 포인터 배열을 선언과 동시에 초기화하고 싶은데요, 저 방법이 아니던가요?

Sailor_moon의 이미지

해쉬 테이블에서 이해가 안가는 부분 ...

int h = 0;
h = hash1(string);
h = h%MAX_HASH_SLOT;
 
 
 
 
 
unsigned long hash1(char* str){
   unsigned long hash = 5381;
   int c; 
   while(( c = *str++) != 0) 
       hash = (( hash <<5) + hash) + c; 
  return hash;
}

이부분이 이해가 안됩니다. 해쉬의 인덱스를 찾는 방법중 하나인가요 ? 저 hash1 함수가 무엇인지요 ?

c_beginner의 이미지

[완료] 바이트 배열에 정수형 상수 일부분 복사하는 방법

C를 시작한지 3개월에 접어든 대왕초보입니다. (ㅠㅠ)
책과 여러 사이트에서 조언주시는 분들 덕분에 잘 공부하고 있는데요.

BYTE arTest[3];
int x = 0x102030;
 
// 성공
arTest[0] = 0x30;
arTest[1] = 0x20;
arTest[2] = 0x10;
 
// 성공
memcpy(arTest, &x, 3);
 
// 실패
memcpy(arTest, (void*)0x102030, 3);

메모리 관련 함수를 공부하던 도중에 위와같이 잘 모르는 경우가 나와서 질문올립니다.

성공이라고 적은 예제들은 책에 나온것인데요. 잘 작동을 합니다.

실패한 것은 예제 작성중 정수형 상수를 공부한 것이 생각나서 굳이 x를 사용하지 않고, 정수형 상수를 넣으면 되지 않나?라는 생각이 들어서 넣어봤는데요. 오류가 발생합니다.

doraq의 이미지

eSATA 외장하드 장착시 에러메시지

임베디드 박스에 eSATA 외장하드(160G)를 달았습니다.
그런데 최초 마운트시에도 아래로그 비슷한게 나오고, (그래도 마운트 됩니다, 사용도 잘 되구요)

아무것도 안하고 shell에 가만히 있어도 간간이 아래 로그가 나옵니다.
외장하드를 제거하고 곧장 내장처럼 연결하면 문제가 없습니다.

또한, 같은 외장케이스에 다른하드1(320G)를 달면 또 잘 됩니다.
또한 같은 외장케이스에 다른하드2(160G)를 달면 같은 에러가 납니다.

포멧은 한번 삭~ 해줬습니다. 정말 하드가 문젠가요?
이유를 알려주세요

콩수니의 이미지

영상을 받아오려고 rtsp 클라이언트를 만들려고합니다.

안녕하세요 카메라로부터 영상을 받아오려고합니다
rtsp 방식으로 영상을 받아오는건 알겠습니다
메세지 형식과 그 과정도 이해는 했는데요

자바에서
막상 구현 할려고보니 무엇부터 해야 할지 몰라서 이렇게 질문을 올립니다.

tcp연결로 먼저 소켓으로 연결해서 카메라쪽에서 인식하는 메세지 방식
즉 rtsp 프로토콜이 요구하는 방식으로 보내느 것이 맞는가요?
예를 들어
다음에 메세지를 그냥 버퍼에 담아서 flush() 하면 되는것인지
OPTIONS rtsp://192.168.0.104/nphMpeg4/nil-320x240 RTSP/1.0\r\n

dltkddyd의 이미지

[해결]구조체 안에 클래스로 선언한 객체에 대하여

ast라는 구조체 타입이 있고, ccla라는 클래스 타입이 있습니다. ccla에는 문자형 포인터가 있고요. 그리고 ast 안에 ccla로 선언된 obj가 존재합니다. 그리고

ast* head;

라고 전역에서 선언했습니다. 그리고 특정 함수에서 head에 동적할당을 다음의 방식으로 합니다.

void set(ccla ft) {
head=new ast;
head->obj=ft;
}

이 때 head->obj 라는 객체는 언제 소멸할까요?

첫번째, head가 전역이니, 프로그램이 종료될 때,
두번째, head에 동적으로 할당하는 함수가 반환주소로 돌아온 직후
세번째, delete로 hed를 지울 때

그리고 head->obj의 동적으로 할당된 문자형 포인터가 가리키는 메모리는 언제 해제되나요?

thnkdiff의 이미지

클래스 멤버로 선언된 상수의 초기값이 저장되는 메모리 위치는?

요즘 Effective C++ 책을 보고 있는데요, 거기 아래와 같은 코드가 나옵니다.

class GamePlayer {
private:
  static const int NumTurns = 5;
  int scores[NumTurns];
  ...
};

여기에서 NumTurns는 '정의'가 아니라 '선언'된 것이구요,
이 상수의 주소값을 구하지 않는 한, 이렇게 정의 없이 선언만 해도 문제가 없다고 나옵니다.
만약 어딘가에 이 상수의 주소값을 구하는 코드를 쓰게 되면, 구현 파일에 아래와 같이 상수의 정의를 해야한다고 합니다.

페이지

프로그래밍 QnA 구독하기