나는 포인터를 공부하고있다. 나는 delete [] 연산자와 혼동했다. 내가 제대로 받았다면 int* a = new int[12];
for (int i=0; i<12; i++)
a[i]=123;
delete[] a;
for (int i=0; i<12; i++)
cout <<a[i]<<" ";
이 delete[] 연산자는 배열
저는 메모리 누수 문제가 있으며 클래스 내부의 구조체 배열과 관련이 있습니다 (클래스에 있는지가 중요한지 확실하지 않음). 구조체에서 delete를 호출하면 메모리가 지워지지 않습니다. int와 dbl을 사용하여 똑같은 프로세스를 사용하면 잘 작동하고 메모리를 해제해야합니다. 아주 간단한 예제를 만들었고 올바르게 작동하기 때문에 코드의 다른 부분과 관련되어
realloc_aray() 함수의 완벽한 모호한 버그. node * b = new node [size]; 줄에서 프로그램이 세그먼트 오류로 인해 충돌합니다. 왜 프로그램이 new 연산자에 해당하는지 명확하지 않습니다. 나는 GDB에서 그것을 디버깅했다. 변수 size = 9의 값이 메모리 부족이 아닌 이유입니다 ...? void compress::compr
많은 양의 계산 된 데이터를 저장하고 있으며 현재 필요한 다량 유형을 줄이기 위해 다형성 유형을 사용하고 있습니다. 작업이 끝나면 개체를 삭제하는 것 외에는 모든 것이 매우 빠릅니다. 더 나은 대안이 있어야한다고 생각합니다. 코드는 각 단계에서 상태를 계산하고 현재 조건에 따라 특정 값을 저장해야합니다. 최악의 경우는 전체 객체 상태를 저장하는 것이고 최상
내가 알아 내기 위해 노력하고있어 C++에서의 char * 관계, 어떻게 제대로이 시나리오 코딩 :는 C++ 응용 프로그램 내부 을, 나는 다음을 LoadLibrary를 통해 외부 DLL을 호출 해요 : char * _input = new {... is created here with some data}
char *aallocchrar =new cha
OK .. 이렇게하면 혼란 스럽습니다. 나는 약간의 레거시 C++ 코드 부분을 다루고 있는데 그 중 일부분은 내가 안전하다고 느끼지는 않지만 100 % 확신 할 수는 없다. 다음은 스 니펫입니다 (예 : 위험한 물건). struct A {
A() : a_ptr(0) {}
A(some_type *ptr) : a_ptr(ptr) {}
A이 unique_ptr<A> 인 경우 자체 소멸자이므로 고유 포인터가 해당 소멸자를 사용하는지 확인하기 위해 Deleter를 선언해야합니까? 내가 생각하고 예는 A가 default_deleter<> 전화 것이기 때문에, 하나 ~A(){ user_matrix::free(mx); /*etc*/}
를 정의 할 메모리를 해제하는 기능을 free(...)를 호
test2가 String 객체를 삭제해야하는 부분을 삭제하면 오류가 발생합니다. 나는 왜 그것이 충돌하는지 잘 모르겠습니다. "디버그 어설 션이 실패했습니다!"라고 표시됩니다. 내가 동적으로 alloacted 문자 배열을 잘못 삭제하고 있습니까? strdrv.cpp : #include <iostream>
#include <stdlib.h>
#includ
좀 이상한 문제가 있습니다. 나는 클래스 연산자의 내부에서 delete 연산자를 사용하고 어떻게이 문제를 해결하는지 알고 싶다. 이 코드 : 데이터가 삭제 운영자에 의해 삭제 된 경우 #include <iostream>
using namespace std;
class A
{
public:
int a;
~A() {
객체를 저장할 때 항상 포인터 목록을 사용하도록 가르쳐 봤지만 대신 객체가있는 목록을 사용하기 시작했습니다. 그래서 목록에서 객체를 올바르게 제거하는 방법이 궁금합니다. 첫 번째 코드 예제는 포인터 목록에서 제거하고 제대로 작동하지만 두 번째 코드 예제는 실행 중 오류가 발생합니다. 객체 목록으로 작업 할 때 delete를 사용해야합니까? 또한 이렇게하는