Описание тега char-pointer
Указатель на символ - это тип данных, который содержит адрес переменной примитивного типа устава.
6
ответов
Как символьный указатель представляет собой целую строку?
Допустим, у меня есть следующая строка: char *my_string = "Stack"; Насколько я знаю char * содержит адрес памяти первого символа строки "Stack", В памяти компьютера это может быть представлено следующим образом: ------------------------ | S | t | a …
10 окт '14 в 08:04
1
ответ
Указатель на символ и строки
Эксперты задают вопрос, заданный в книге "Позвольте нам", где автор попросил написать вывод данной программы. Программа #include<stdio.h> int main() { char s[]="Churchgate: no church no gate"; char t[40]; char *ss,*tt; ss=s; while(*ss!='\0') *…
18 ноя '17 в 16:56
2
ответа
Можно ли объединить строковый литерал с символом *?
Я знаю, что в С смежные строковые литералы объединяются. Я хочу знать, соединены ли смежные строковые литералы с символами *? Причина, по которой я задаю этот вопрос, заключается в том, что я хочу передать конкатенацию двух строк perror(), и одна из…
20 фев '19 в 04:03
2
ответа
Заполнить символ *[] из strtok
У меня проблемы с получением следующего Кодекса для работы. Он анализирует пользовательский ввод в char*[] и возвращает его. Однако команда char*[] не принимает никаких значений и остается заполненной NULL... что здесь происходит? void* setCommands(…
11 июн '13 в 02:10
3
ответа
Почему в некоторых случаях компилятор может неявно преобразовывать char * в std::string
Эти работы: struct WithString { WithString(std::string){}; }; void takeString(std::string){} //implicit conversions: takeString("hello"); WithString("hello"); Но это не так: WithString makeWithString() { return "hello";} // error: no viable conversi…
15 янв '17 в 14:47
3
ответа
Как конвертировать uint64_t в const char * в C++?
У меня есть один метод, который принимает const char * как показано ниже - bool get_data(const char* userid) const; Теперь ниже мой цикл for, в котором мне нужно позвонить get_data метод мимоходом const char *, В настоящее время ниже для использован…
29 май '14 в 23:54
5
ответов
Почему компилятор не жалуется на добавление char к char*?
Почему компилятор C++ не жалуется на следующий код? #include<iostream> int main() { const char* p ="Hello"; std::string q = p + 'H'; std::cout << q << std::endl; } И это правильно выкинуло ошибку для следующего кода #include<ios…
31 окт '17 в 08:13
5
ответов
Понимание операторов разыменования, адреса и индекса массива в C
У меня argv[] определен как char *. Используя следующие операторы printf: printf("%s\n",argv[1]); // prints out the entire string printf("%p\n",&argv[1]); // & -> gets the address printf("%c\n",argv[1][0]);// prints out the first char of …
15 янв '17 в 17:57
11
ответов
Инициализация указателей на символы
У меня есть символьный указатель, который будет использоваться для хранения строки. Это используется позже в программе. Я объявил и инициализировал так: char * p = NULL; Мне просто интересно, если это хорошая практика. Я использую gcc 4.3.3.
02 ноя '09 в 10:19
1
ответ
Отсутствие ошибки сегментации при превышении размера, выделенного для символа *
Я использую malloc для выделения n (длина строки y) байтов для x. Однако после копирования y в x я добавил еще 3 символа, включая '\0' в x, и не получил никакой ошибки. Должен ли я получить сообщение об ошибке при попытке присвоить значения нераспре…
21 мар '15 в 09:51
2
ответа
((char) 257) печатает 1 в C?
Я в замешательстве. У меня болит голова. Я новичок в C. #include<stdio.h> int main() { int i = 257; int *iPtr = &i; printf("val 1: %d \t val 2: %d \n\n",*( (char*)iPtr ), *( (char*)iPtr+1) ); int iptr_alias = iPtr; int and_val = iptr_alias…
25 сен '12 в 16:53
2
ответа
Непонятное распределение выделенной кучи (работает код - необходимо исправить ошибку Valgrind)
Мой код работает нормально, но я получаю ошибки valgrind. Я хочу знать, как исправить мой код в отношении правильного использования этих операторов malloc и free с помощью char * * dest. Пожалуйста, не говорите мне, чтобы я не выполнял malloc и free…
16 фев '15 в 20:10
1
ответ
Почему программа возвращает ошибку сегмента, когда я ввожу указатель на строковый литерал, а не когда я ввожу указатель на массив?
Когда я передаю литерал char * в trim(), он вызывает ошибки, но когда я посылаю указатель массива, он работает, почему это не работает? int main(void){ /* If instead I have a char s[100] = "Hi "; * it works as intended so why does it not work when i…
20 апр '18 в 04:32
1
ответ
Я в недоумении, почему этот код дает мне нарушение прав чтения. разыменование указателя и вычитание другого символа должно работать в теории
Я не знаю, почему это не работает. В коде есть проблема с функцией *c в charToInt, но он должен быть допустимым в c. по крайней мере, так я думал. Я взволнован, чтобы узнать что-то новое здесь. int charToint(char *c) { return *c - '0'; } int main(vo…
23 окт '18 в 02:57
2
ответа
Как я могу безопасно гарантировать, что тип char* будет правильно реализован (на любой платформе) в соответствии со спецификацией OpenGL?
Пытаясь разобраться в графическом программировании с использованием C++ и OpenGL3+, я столкнулся с немного специализированной проблемой понимания типа char, указателей на него и потенциального неявного или явного преобразования в другие типы указате…
03 янв '15 в 20:33
1
ответ
C++ MFC: утечка памяти при создании CString из Char*
Я получаю утечку памяти, когда я запускаю, пытаюсь читать из буфера обмена. Образец кода: void SomeFunction() { OpenClipboard(nullptr); HGLOBAL hglb = GetClipboardData(CF_TEXT); char* ch = static_cast<char*>(GlobalLock(hglb)); CString rawClipb…
06 окт '16 в 08:53
4
ответа
Конкат двух символьных указателей
Я только изучаю C и дошел до точки указателей. Я написал метод, который должен объединять два указателя на символы, и я получил странное поведение, которое я просто не могу объяснить самому себе, и не нашел ответа на него, так что, возможно, вы може…
22 июл '17 в 14:31
6
ответов
Использование указателей на строки
Я действительно запутался в использовании указателей на строки. Такое чувство, что они подчиняются другим правилам. Рассмотрим следующий код char *ptr = "apple";// perfectly valid here not when declaring afterwards like next ptr = "apple"; // should…
05 сен '17 в 14:09
3
ответа
Strcmp не работает должным образом, возвращает 0 при сравнении двух неравных строк
Я понимаю странное поведение strcmp функция, которая будет проиллюстрирована следующим кодом: #include <iostream> #include <cstring> using namespace std; int main() { char *p = "no"; cout << p << endl; //Output: no cout <&…
03 мар '13 в 04:37
5
ответов
Почему моя программа выдает ошибку сегментации при использовании памяти, выделенной в куче?
После написания программы, которая перевернула строку, у меня возникли проблемы с пониманием, почему я получил ошибку сегмента при попытке перевернуть строку. Я перечислил свою программу ниже. #include <stdio.h> #include <stdlib.h> #incl…
18 мар '13 в 13:05