*(*(p+a)+b)
* 크기가 주소 (p)에 추가되면 * (p + a)에 b * 크기가 추가되는 이유는 무엇입니까? * (p + a)는 해당 위치의 값으로 표시되며 b * 크기를 추가하면 주소가 아닌 값이 변경됩니다. 그러나, 내가 읽은 것을 기반으로 한 것은 주소에 추가하기위한 것입니다.
버그가 발견되어 (몇 시간 후) 다음 프로그램에서 분리되었습니다. 문제는 struct에 대한 포인터를 사용할 때 pst2 변수의 값이 계산되는 방식입니다. char에 대한 포인터를 사용하면 모든 것이 잘 동작합니다. 왜 이런거야? (궁금해하는 사람들을 위해. : 나는 일반 오프셋에서 데이터 그룹을 포함하는 파일 버퍼를 액세스하는거야) #include <io
포인터 산술을 사용하여 구조체의 특정 멤버를 인쇄하는 방법은 무엇입니까? 나는 2 명의 구성원으로 구성된 구조를 가지고있다. 그 구조에 대한 포인터의 메모리를 조작하여 구성원 j을 인쇄하고 싶습니다. 포인터 유형이 증가가 올바른 크기 추가 있도록 바로 할 필요가 #include <stdio.h>
#include <conio.h>
typedef stru
나는 3 년 넘게 포인터를 사용하지 않았으며이 주제에 대해 매우 녹슨합니다. 다음 코드를 컴파일 할 때 많은 오류가 발생했습니다. [email protected]:~/Desktop/stuff$ g++ test.cpp LinearNode.cpp LinkedList.cpp
LinkedList.cpp: In member function ‘void Linked
세 가지 구조가 있습니다. 배열 a 및 b 포인터 c : int main(){
char a[3][5]={"a", "big", "ride"};
char b[]="Flying";
char *c=*(a+1);
puts(b+(c-*a)-2);
return 0;
}
이제 내가 이해할 수없는 것은 표현 b+(c-*
포인터 연산의 경우 정수가 자동으로 부호있는 변형으로 변환됩니까? 그렇다면 왜? 은 가정하자 나는, 나는 왜의 부호 값이 포인터의 주소가 4 씩 감소 얻을 int *pointer;
int *pointerdiff;
unsigned int uiVal = -1;
pointerdiff = pointer + uiVal // Pointer will contai
저는 C 프로그래밍을 처음 접했고 포인터 수학과 혼동을 느낍니다. 배열의 크기가 32 바이트이기 때문에 문자 변수의 크기가 1 바이트이므로 32 characters * 1 byte = 32 bytes입니다. 문제는 앞에서 설명한대로 문자 배열을 가리키는 void 포인터가있는 함수를 가질 때입니다. 나는이 프로그램을 실행하면 0이 그러나, 나는 세그먼트 오류
이것은 잘 올 수 있지만 다음 코드는 수정중인 MSDN 예제에서 가져온 것입니다. 비트 맵에 관한 데이터가 들어있는 버퍼의 내용을 반복하고 색상을 출력하는 방법을 알고 싶습니다. 각 픽셀은 4 바이트의 데이터이므로 R G B 값이이 바이트 중 3 개를 차지한다고 가정하고 있으며 A는 4 번째 바이트 일 수 있습니다. 내가 사용할 수있는 로컬 변수에 해당 반
내 질문은 매우 간단합니다. 다음과 같이 말합니다. char* ptr = (char*) malloc(sizeof(char)*SIZE);
ptr+= SIZE/2;
free(ptr);
포인터를 놓으면 어떻게 될까요? 정의되지 않은 작업입니까? SIZE 버퍼를 모두 비울 지 아니면 나머지 SIZE/2만을 비우지 않습니까? 이 문제를 명확히 해 주셔서 감사
어떤 종류의 메모리 정렬 검사를 수행하고 싶습니다. T. 이 작업을 수행하는 간단한 방법은 uintptr_t 기존 C의 일부 ++ 표준 아니고, 어떤 컴파일러를 지원하지 않습니다, 그러나 if (((uintptr_t)&var & __alignof(T) - 1) == 0) ...
, 그래서이 작업을 수행하는 휴대용 다른 방법을 찾고 있어요 및 std::p