Я работаю над проектом, где я создаю структуры внутри отдельной функции, чем main() . После создания и добавления информации о члене (переменной) в структурную переменную мне нужно будет return указатель на структуру, в которой я могу получить к ней доступ для ссылки и печати. Я включаю свой код и прошу вас как можно проще, поскольку […]
Допустим, у нас есть массив указателей на символы char* array[] = { “abc”, “def” }; Теперь, что нужно положить в конец? char* array[] = { “abc”, “def”, ‘\0’ }; или же char* array[] = { “abc”, “def”, “\0” }; Хотя, оба работают. Мы должны только поставить условие, чтобы проверить конец соответственно лайк array[ index ] […]
У меня есть массив указателей на массивы, в функции. Мне нужно получить доступ к этому массиву в другой функции. Массив указателя char *ptr[size + 1]; Я сделал глобальный указатель char *p; который я указал на ptr (в той же функции, что и ptr) p = *ptr; то я попытался получить доступ к ptr из другой […]
Рассмотрим это определение: char *pmessage = “now is the time”; Как я вижу, pmessage укажет на смежную область в памяти, содержащую эти символы, и ‘\0’ в конце. Поэтому я получаю от этого, что я могу использовать арифметику указателя для доступа к отдельному символу в этой строке, пока я в пределах этой области. Итак, почему они […]
Я пытаюсь использовать qsort для сортировки массива символов. Я не понимаю, почему это не работает. У меня есть указатель на функцию сравнения, как указано в man страницах. Может кто-нибудь, пожалуйста, скажите мне, что случилось? Благодарю. Мой код: #include #include #include int cmpfunc( const void *a, const void *b) { return *(int*)a – *(int*)b; } void […]
Для некоторых это может быть очень простым вопросом. Я пытался понять, как strcpy работает на самом деле за кулисами. например, в этом коде #include #include int main () { char s[6] = “Hello”; char a[20] = “world isnsadsdas”; strcpy(s,a); printf(“%s\n”,s); printf(“%d\n”, sizeof(s)); return 0; } Поскольку я объявляю s статическим массивом, размер которого меньше, чем […]
Я знаю, что это было задано ранее, но одна вещь, на которую не затронули эти другие вопросы, – это почему Позвольте мне объяснить. Я просто просмотрел учебник, в котором выведены целые числа и указатели, чтобы показать вам, как это сделать. int anInteger = 50; int *anIntPointer = &anInteger; Таким образом, чтобы настроить указатель, я назначаю […]
Во время установки CAN-передачи указатель повреждается (он исходит от действительного 0x00000bd0 до 0x84520000, который выходит за пределы моей ОЗУ). Указатель также не связан с активностью CAN. Причиной коррупции является то, что union64 записывается по адресу указателя. Этот union64 принадлежит к объекту CANIF (из ASF), в исходном коде коррупция происходит здесь: void CAN_SendMsg_KMS(uint64_t msg) { CANIF_mob_get_ptr_data(ACTIVECHANNEL,0)->data […]
Я попытался запустить этот код, int *p; float q; q = 6.6; p = &q; Хотя это будет предупреждение, но я думаю, что &q и p имеют одинаковый размер, поэтому p может иметь адрес q . Но когда я печатаю &q и p я получаю разные результаты. Это мой вывод *p = 6.600000 q = […]
Привет, я работаю с C, и у меня есть вопрос о назначении указателей. struct foo { int _bar; char * _car[SOME_NUMBER]; // this is meant to be an array of char * so that it can hold pointers to names of cars } int foofunc (void * arg) { int bar; char * car[SOME_NUMBER]; struct […]