Microsoft visual c++ 2008. Урок 19. Указатели и выделение памяти. |
![]() |
![]() |
Автор megabax | ||
07.08.2012 г. | ||
Microsoft visual c++ 2008. Урок 19. Указатели и выделение памяти.Допустим, у нас есть массив char a[10]. В этом случае a - это указатель на первый элемент массива. С другой стороны, мы можем записать *p=&a[0]. Тогда у нас будет еще один указатель, и запись *p="abc" будет эквивалентна a[]="abc". Единственное, о чем следует помнить, так это то, что для записи данных в память, на которую указывает указатель, эта память должна быть выделена. Либо объявлен сам массив, либо вызвана функция malloc(). И длина записанных данных у нас не должна превышать размера выделенной памяти. Тоесть, если мы объявили char a[3], и присвоили *p=&a[0], то мы можем записать *p="abc". А вот записать *p="abcd" мы тоже можем, но делать это не нужно. С тчоки зрения компилятора это не будет ошибкой. Но, какие то данные в программ такой командой мы затерем. А потом у нас будут разные необычные глюки... Так что осторожней с указателями! А теперь рассмотрим пример:
А вот результат работы этой программы:
Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями программного продукта "Microsoft Visual C++ Express Edition", авторское право на который принадлежит корпорации Microsoft..
|
||
Последнее обновление ( 16.11.2013 г. ) |
« След. | Пред. » |
---|