2011-11-24 5 views
1

내가 가진 *이 버퍼 UINT8를 초기화하는이 타입 정의

typedef unsigned char uint8; 

이이

public : uint8* bufferOfExchange; 

가 어떻게이 버퍼를 초기화 할 수있는 변수? 이처럼

bufferOfExchange = ??? 
+2

이 답변은 한 번 초기화하려는 값에 따라 다릅니다. – Mankarse

+0

아마도'new uint8' 또는'uint8 [size]'또는 아마도 포인터가 필요하지 않을 수도 있습니다 ... – Hauleth

+0

null로 초기화 할 수 있습니다 bufferOfExchange = 0; 또는 메모리를 할당 할 수 있습니다. bufferOfExchange = (uint8 *) malloc (1024); 등등 – Cyclonecode

답변

2

:

bufferOfExchange = new uint8[bufferSize]; //bufferSize is size_t type. 

//or 
bufferOfExchange = otherBuffer; //otherBuffer is of same type 

당신이 다른 어떻게 생각하십니까?

더 나은 선택은 uint8* 대신 std::vector<uint8>를 사용하는 것입니다 :

std::vector<uint8> bufferOfExchange; 

지금, std::vector를 사용하는 방법을 알 수있는 좋은 책을 읽고.

+0

C#에서 byte []와 (과) 비슷한 것을 가지고 있습니다.). 그래서 C# (byte []) -> C++ (uint8 * buffer) 가능합니까? – curiousity

+0

@curiousity :'std :: vector '을 사용하도록 제안했습니다. – Nawaz

+0

감사합니다. NAWAZ – curiousity

1

글쎄 버퍼가없고 초기화되지 않은 포인터 만 있습니다. 이 같은 새와 버퍼를 만들 수 있습니다

bufferOfExchange = new uint8[10]; 

(10 임의의 선택 - 당신이 필요로하는 버퍼 크기를 사용합니다.) 그러나 실제 코드에 대한

, 당신은 아마 std::vector<uint8>를 원하는 것입니다.