Результаты поиска по запросу "pointers"
Являются ли a, & a, * a, a [0], & a [0] и & a [0] [0] одинаковыми указателями?
У меня есть следующая программа на C: #include <stdio.h> int main(){ int a[2][2] = {1, 2, 3, 4}; printf("a:%p, &a:%p, *a:%p \n", a, &a, *a); printf("a[0]:%p, &a[0]:%p \n", a[0], &a[0]); printf("&a[0][0]:%p \n", &a[0][0]); return 0; }Это дает ...
ред один раз ненужный.
роисходит, когда у вас есть следующий код: void makeItHappen() { char* text = "Hello, world"; }Есть лиtext выйти из области видимости и автоматически удаляться или он остается в памяти? А как насчет следующего примера: class SomeClass { ...
Во второй функции возвращаемое значение оптимизируется компилятором, поэтому вы не платите цену за фактическое копирование массива.
ли я получить доступ к локальной переменной в другой функции? Если да, то как? void replaceNumberAndPrint(int array[3]) { printf("%i\n", array[1]); printf("%i\n", array[1]); } int * getArray() { int myArray[3] = {4, 65, 23}; return myArray; } ...
Почему я получаю эту ошибку: «у определения данных нет типа или класса хранения»?
#include <stdio.h> #include <stdlib.h> struct NODE { char* name; int val; struct NODE* next; }; typedef struct NODE Node; Node *head, *tail; head = (Node*) malloc( sizeof( Node ) ); //line 21И я собираю так: cc -g -c -o file.tab.o file.tab.cЯ ...
Адреса двух символьных указателей на разные строковые литералы одинаковы
#include<stdio.h> #include<string.h> int main() { char * p = "abc"; char * p1 = "abc"; printf("%d %d", p, p1); }Когда я печатаю значения двух указателей, он печатает один и тот же адрес. Почему?
stackoverflow.com/questions/364483/...
тся ли следующий законный C ++ с четко определенным поведением? class my_class { ... }; int main() { char storage[sizeof(my_class)]; new ((void *)storage) my_class(); }Или это проблематично из-за соображений приведения / выравнивания указателя?
Для классов, которые имеют элемент данных auto ptr, у меня всегда есть метод clone, который возвращает новый auto ptr. Затем я реализую метод присваивания и конструктор копирования, который вызывает метод клона (и никогда не используется по умолчанию как оператор присваивания auto ptr). Таким образом, вы можете безопасно использовать класс в контейнерах STL.
сь об умных указателях (std::auto_ptr) и только что прочиталВот [http://www.gotw.ca/publications/using_auto_ptr_effectively.htm]а такжеВот [http://ootips.org/yonat/4dev/smart-pointers.html]что умные указатели (std::auto_ptr) не следует помещать в ...
Младшие 128 байт vax-машины дают нарушение доступа при разыменовании их. У вас есть программа, которая демонстрирует симптомы, которые вы наблюдали?
ли предположить, чтоNULL всегда переводится как false в C? void *somePtr = NULL; if (!somePtr) { /* This will always be executed? */ }Или следует явная проверка значенияNULL быть сделано?
Да, они просто сравнивают адрес памяти.
о для удовольствия, у меня былstd::list изconst char*каждый элемент указывает на завершенную нулем текстовую строку и запускаетstd::list::sort() в теме. Так получилось, что вроде (не каламбур) не сортировал строки. Учитывая, что он работал над ...
так что если вы сделаете * (a + 1), вы получите значение a [1] и аналогично для других значений. если вы сделаете * (a), вы действительно получите [0], так что я думаю, теперь довольно ясно, как это работает ..
int* myPointer = new int[100]; // ... int firstValue = *(myPointer + 0); int secondValue = myPointer[1];ли функциональная разница между*(myPointer + index) а такжеmyPointer[index]? Что считается лучшей практикой?