«pointers» 태그된 질문

메모리에 저장된 다른 값을 "가리키는"데이터 유형. 포인터 변수는 다른 엔티티 (변수 또는 함수 또는 다른 엔티티)의 메모리 주소를 포함합니다. 이 태그는 참조가 아닌 포인터 사용과 관련된 질문에 사용해야합니다. 포인터를 사용하는 가장 일반적인 프로그래밍 언어는 C, C ++, Go 및 어셈블리 언어입니다. 특정 언어 태그를 사용하십시오. 다른 유용한 태그로는 포인터 사용을 설명하는 메소드, 함수, 구조체 등이 있습니다.

5
C에서 * ptr + = 1과 * ptr ++의 차이점
방금 C를 공부하기 시작했고 포인터를 함수의 매개 변수로 포인터에 전달하는 예제를 수행 할 때 문제를 발견했습니다. 이것은 내 샘플 코드입니다. #include <stdio.h> #include <string.h> #include <stdlib.h> int* allocateIntArray(int* ptr, int size){ if (ptr != NULL){ for (int i = 0; i < size; i++){ ptr[i] = i; } } return …

11
연결 목록이 노드 내부에 노드를 저장하는 대신 포인터를 사용하는 이유
Java에서 광범위하게 연결 목록을 사용했지만 C ++를 처음 접했습니다. 나는 프로젝트에서 나에게 주어진이 노드 클래스를 잘 사용하고 있었다. class Node { public: Node(int data); int m_data; Node *m_next; }; 하지만 대답이 잘되지 않은 질문이 하나있었습니다. 사용해야하는 이유 Node *m_next; 대신 목록의 다음 노드를 가리 킵니다. Node m_next; 포인터 버전을 사용하는 …

21
널 포인터에 주소 0이 사용되는 이유는 무엇입니까?
C (또는 C ++)에서 포인터는 값이 0이면 특별합니다. 포인터를 다시 해제하는 것은 위험하지 않기 때문에 메모리를 해제 한 후 포인터를 0으로 설정하는 것이 좋습니다. malloc을 호출 할 때 메모리를 얻을 수없는 경우 값이 0 인 포인터를 반환합니다. if (p != 0)전달 된 포인터가 유효한지 확인하기 위해 항상 사용 합니다. 그러나 …
121 c++  c  memory  pointers 

10
2 차원 배열에 대한 포인터 만들기
정적 2 차원 배열에 대한 포인터가 필요합니다. 어떻게하나요? static uint8_t l_matrix[10][20]; void test(){ uint8_t **matrix_ptr = l_matrix; //wrong idea } 다음과 같은 모든 종류의 오류가 발생합니다. 경고 : 호환되지 않는 포인터 유형에서 할당 아래 첨자 값은 배열도 포인터도 아닙니다. 오류 : 유연한 배열 구성원의 잘못된 사용
120 c  arrays  pointers 


9
C 포인터 : 고정 된 크기의 배열을 가리킴
이 질문은 C 전문가에게 나옵니다. C에서는 다음과 같이 포인터를 선언 할 수 있습니다. char (* p)[10]; .. 기본적으로이 포인터는 10 개의 문자 배열을 가리 킵니다. 이와 같은 포인터 선언에 대한 깔끔한 점은 p에 다른 크기의 배열 포인터를 할당하려고하면 컴파일 시간 오류가 발생한다는 것입니다. 간단한 char 포인터의 값을 p에 할당하려고하면 컴파일 …
119 c  pointers  size 

15
포인터가 기본적으로 NULL로 초기화되지 않는 이유는 무엇입니까?
누군가 포인터가 초기화되지 않은 이유를 설명해 주 NULL시겠습니까? 예: void test(){ char *buf; if (!buf) // whatever } 프로그램은 bufnull이 아니기 때문에 if 내부로 들어 가지 않습니다. 나는 왜 어떤 경우에 쓰레기가있는 변수, 특히 메모리의 쓰레기를 다루는 포인터가 필요한지 알고 싶습니다.



10
ptr이 NULL 인 free (ptr)는 메모리를 손상 시킵니까?
이론적으로 나는 말할 수 있습니다 free(ptr); free(ptr); 이미 해제 된 메모리를 해제하기 때문에 메모리 손상입니다. 하지만 만약 free(ptr); ptr=NULL; free(ptr); OS가 정의되지 않은 방식으로 동작하기 때문에 무슨 일이 일어나고 있는지에 대한 실제 이론적 분석을 얻을 수 없습니다. 내가 무엇을하든,이 메모리 손상이 아닌가? NULL 포인터를 해제하는 것이 유효합니까?

3
이 코드가 64 비트 아키텍처에서는 segfault이지만 32 비트에서는 잘 작동하는 이유는 무엇입니까?
다음 C 퍼즐을 발견했습니다. Q : 다음 프로그램이 IA-64에서는 segfault를 실행하지만 IA-32에서는 제대로 작동하는 이유는 무엇입니까? int main() { int* p; p = (int*)malloc(sizeof(int)); *p = 10; return 0; } int64 비트 컴퓨터에서의 크기가 포인터의 크기와 같지 않을 수 있다는 것을 알고 int있습니다 (32 비트가 될 수 있고 포인터가 64 …

2
Go에서 리터럴 * int64를 어떻게 수행합니까?
*int64필드 가있는 구조체 유형이 있습니다. type SomeType struct { SomeField *int64 } 내 코드의 어느 시점에서 나는 이것의 리터럴을 선언하고 싶습니다. instance := SomeType{ SomeField: &0, } ... 이것은 작동하지 않는 것을 제외하고 ./main.go:xx: cannot use &0 (type *int) as type *int64 in field value 그래서 나는 이것을 시도 instance …
111 pointers  go  struct  literals 

6
이 포인터 사용을 예측할 수없는 이유는 무엇입니까?
저는 현재 포인터를 배우고 있으며 교수님이이 코드를 예제로 제공했습니다. //We cannot predict the behavior of this program! #include <iostream> using namespace std; int main() { char * s = "My String"; char s2[] = {'a', 'b', 'c', '\0'}; cout << s2 << endl; return 0; } 그는 우리가 프로그램의 행동을 …
108 c++  pointers 

2
값 수신기 대 포인터 수신기
항상 포인터 수신기를 사용하는 대신 값 수신기를 사용하고 싶은 경우에는 매우 불분명합니다. 문서에서 요약하려면 : type T struct { a int } func (tv T) Mv(a int) int { return 0 } // value receiver func (tp *T) Mp(f float32) float32 { return 1 } // pointer receiver 문서는 "같은 …
108 function  pointers  go 

2
"<type>은 인터페이스가 아니라 인터페이스에 대한 포인터입니다."혼동
동료 개발자 여러분, 나에게 조금 이상해 보이는 문제가 있습니다. 이 코드 스 니펫을 살펴보십시오. package coreinterfaces type FilterInterface interface { Filter(s *string) bool } type FieldFilter struct { Key string Val string } func (ff *FieldFilter) Filter(s *string) bool { // Some code } type FilterMapInterface interface { AddFilter(f *FilterInterface) …
104 pointers  go  interface 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.