0
는 C에서 뭔가를 할 수 있나요 ++와 같은 :이 C에서 배열 함수의 배열을 설정 ++
uint8_t[] getSth() {
uint8_t a[2] = {5, 2};
return a;
}
uint8_t b[] = getSth();
는 C에서 뭔가를 할 수 있나요 ++와 같은 :이 C에서 배열 함수의 배열을 설정 ++
uint8_t[] getSth() {
uint8_t a[2] = {5, 2};
return a;
}
uint8_t b[] = getSth();
아니, 그런 : 포인터에 내장 된 배열 붕괴 반환에, 당신은 끝날 것 때문에 여러 오류 및 매달린 포인터. 수익 유형으로 b
의 크기는 컴파일 타임에 알려진 경우
std::array<uint8_t,2>
을하고 b
의 유형으로 : C++하지만, 몇 가지 솔루션을 제공합니다. b
의 크기는 컴파일 타임에 알 수없는 경우
getSth
는 다른 라이브러리에) b
의 크기는 컴파일 타임에 알려진 경우 std::vector<uint8_t>
struct
또는 클래스로 래핑 할 수 있습니다. 이것은 가장 간접적 인 방법이므로, 대신 1 또는 2를 선호합니다.std::array<uint8_t,2> getSth() {
std::array<uint8_t,2> a = {5, 2};
return a;
}
std::array<uint8_t,2> b = getSth();
사용하십시오'표준 : 대신 array'? – Ryan
@ Ryan 신입 회원. 어떻게 사용할 수 있습니까? –
아니요,'return a '는 정의되지 않은 동작을 일으키고,'uint8_t b [] = getSth()'는 컴파일되지 않습니다. –