Типы данных для «указания» на другие значения: значение указателя — это адрес памяти, где хранится указываемое значение. Этот тег следует использовать для вопросов, связанных с использованием указателей, а не ссылок. Распространенными языками программирования, использующими указатели, являются C, C++, Go, а также языки ассемблера и промежуточного представления; использовать определенный языковой тег. Другие полезные теги должны описывать, на что указывает указатель (например, функция, структура и т. д.).
1
Выделение массива с использованием цикла for для инициализации заданного любого выделенного размера.
int *p_numbers;
p_numbers = malloc((sizeof *p_numbers) * 10);
if (p_numbers == NULL)
exit(EXIT_FAILURE);
for (int i = 0; i < sizeof(p_numbers) / sizeof(*p_numbers); i++) {
printf("-> %p\n\n", p_numbers);
p_numbers[i] = 0;
}
Ищем операцию, которая бы опре...
25 Сен 2023 в 19:41
2
Разве имя массива не является адресом его первого элемента? почему этот код дает два разных адреса?
Код:
antarctica_years_end s01, s02, s03;
s01.year = 1998;
antarctica_years_end* pa = &s02;
pa->year = 1999;
antarctica_years_end trio[3]; // array of 3 structures
trio[0].year = 2003;
antarctica_years_end* arp[3] = { &s01, &s02, &s03 };
std::cout << arp << " ...
24 Сен 2023 в 22:33
Рассмотрим следующий код C
#include <stdio.h>
int main() {
int arr[] = {10, 20, 30, 40};
int *ptr = arr; // ptr points to the internal pointer variable of `arr`, that is, the address of its first array element, 10.
printf("The address of the first int array element is : ...
24 Сен 2023 в 18:35
Я пытаюсь реализовать функцию «split()» из Python в C и с помощью следующего кода:
#include <stdio.h>
#include <string.h>
int strsplit(char *, unsigned long *);
void strprint(char *);
void empty_arr(char *);
int main()
{
char str1[] = "help me out"; // changeable line ~~~~~~~~~~~~~~
unsigned ...
Я изучаю C, пытаясь реализовать общую функцию подкачки, способную менять местами строки и массивы. Я думаю, что это возможно, потому что строки и массивы по сути представляют собой массивы в памяти, и я меняю не реальные байты, а только указатели. Вот моя реализация:
#include "stdio.h"
void swap(...
23 Сен 2023 в 12:44
Я пытался понять сообщение от geeksforgeeks и не смог понять фрагмент кода. Вот следующий пост:
https://www.geeksforgeeks.org/returning-a-function-pointer-from-a-function-in-c-cpp/
В этом посте они приводят пример кода следующим образом:
На основе следующего кода
#include <stdio.h>
int add(int a,...
23 Сен 2023 в 08:39
В настоящее время я работаю над проектом программирования на C и столкнулся с проблемой, которую пытаюсь решить.
Проблема:
Я использую код Visual Studio (VS Code) в качестве редактора кода. Проект состоит из следующих файлов:
Main.c:
#include "list.h"
#include <stdio.h>
int main()
{
List* l = ...
23 Сен 2023 в 00:23
Я разрабатываю библиотеку, поэтому не знаю контекст приложения, которое позже будет использовать библиотеку. У меня два класса. Класс Window регистрирует виджеты, поэтому он может, например. пересылать события пользовательского интерфейса в виджеты. Класс Widget представляет виджет, отображаемый...
22 Сен 2023 в 15:49
У меня есть текстовый файл, заполненный тремя именами. Я пытаюсь прочитать текстовый файл в массив символов и отобразить количество элементов. Однако мой счетчик в функции readfrom(), похоже, выводит количество символов в текстовом файле. А при отображении массива каждый символ отображается с нов...
22 Сен 2023 в 13:05
Мы пытаемся создать пузырьковую сортировку, которая может принимать массив int, float или c-string. Мы уже написали функцию swap, которая позволяет нам это делать, но теперь не можем понять, как заставить ее работать с пузырьковой сортировкой.
#include <stdio.h>
#include <stdlib.h>
#include <string...
21 Сен 2023 в 17:46
Я пытаюсь инициализировать указатель, указывающий на указатель, указывающий на символ (char**):
char arr[8]; char ** arrptr = &arr;
И я получаю предупреждение: «инициализация из несовместимого типа указателя»
Что случилось с этим?...
При разработке функции, которая ожидает непрерывный массив в форме указателя, следует ли передавать массив с помощью
A.
Указатель и размер массива:
void foo(int* arr, size_t size);
Или Б.
Указатель начала и указатель конца:
void foo(int* arrBegin, int* arrEnd);
Очевидно, что общий размер параметро...
20 Сен 2023 в 23:23
Я прохожу курс C, и мне трудно разобраться в следующем упражнении.
Учитывая два указателя на символы, функция должна сравнивать строки, на которые указывают указатели, лексикографически (с учетом регистра). Он должен возвращать отрицательное, 0 (ноль) или положительное целочисленное значение, если ...
Я хотел бы преобразовать 2D-массив (faces0) в 2D-вектор (face1). Я попробовал следующий код. Выдает ошибку времени компиляции.
bool read_polygon_mesh(Point_3 *points0,
int **faces0,
Polygon_mesh& polygon_mesh)
{
std::vector<Point_3> points(points0, points0 + sizeof points0 / sizeof poi...
У меня есть файл заголовка и два исходных файла.
Ниже приведен код моего файла tpool_pq.h.
typedef enum priority_t {LOW = 1, MEDIUM = 3, HIGH = 5} priority_t;
typedef struct task_t {
void (*function)();
void *arguments;
priority_t priority;
} task_t;
typedef struct tpool_pq {
task_...
Чтобы создать и инициализировать b2Body, нам нужно создать b2BodyDef, b2Shape и b2FixtureDef, и мы передаем эти значения как указатели на функции.
Итак, я мог бы иметь такую функцию createBody:
b2Body* createBody(b2World& world, b2Vec size, float density, float friction)
{
b2BodyDef bodyDef;
...
Мне поручено написать программу, которая спрашивает пользователя, сколько денег ему нужно потратить, а затем спрашивает пользователя, сколько билетов он хочет купить. У меня должна быть функция main() и функция PurchaseTickets(). Я новичок в указателях и совершенно не понимаю, как их использовать ...
Я видел и писал функции, которые передают параметры в ссылку на обновляемые объекты, потому что либо мне нужен был код возврата, либо мне нужно было изменить более одной переменной в одной функции.
Теперь я увидел код, написанный, как показано ниже, и мне трудно понять, как/почему переменная bool (в...
18 Сен 2023 в 04:25
У меня есть следующий объект:
class Container {
public:
std::vector<std::unique_ptr<Item>>& items() { return m_items; }
private:
std::vector<std::unique_ptr<Item>> m_items;
};
Я хотел бы использовать const, чтобы сделать весь этот объект неизменяемым, но при этом обеспечить доступ к items(...
18 Сен 2023 в 00:57
Я знаю, что если мы вызываем функцию, используя «вызов по значению», мы не можем перезаписать значение, которое мы передаем функции внутри функции, и если функция возвращает значение указателя, мы не должны пытаться вернуть адрес локальной переменной. (локально для функции), потому что эта локальна...
Мне нужно выполнить этот проект на Flex/Yacc, где я должен вычислить абстрактное синтаксическое дерево инсемистического выражения. Но настоящая проблема заключается в коде C.
Я сделал эту функцию, которая создает узел:
node_t * createNode(node_content_t nodecontent, int nodetype){
node_t *newNo...
Например:
struct A { char s[10]; } f() {
struct A ret;
scanf("%9s", ret.s);
return ret;
}
int main()
{
char *str = f().s;
puts(str);
}
str указывает на действительную строку? или его освободили?
Если это безопасно, то где хранятся строковые данные? кадр стека основного?...
Я пытаюсь присвоить строковые литералы массиву символов.
Этот код отлично работает
#include <stdio.h>
struct student
{
char* name;
};
struct student s[2];
void main()
{
s[0].name = "jason";
s[1] = s[0];
printf("%s%s", s[0].name, s[1].name);
s[1].name = "fedin";
printf("...
16 Сен 2023 в 05:33
Вот коды:
typedef std::vector<int const*> TempArrayType;
TempArrayType tempArray;
Когда я использую tempArray, его тип неявно преобразуется в std::vector, и я не знаю, почему.
Я считаю, что между T const* и const T* есть некоторые различия, но я не уверен, равен ли vector<T const*> vector<const T*>...
Простое определение:
class B1
{ /* stuff, virtual methods */ };
class B2
{ /* stuff, virtual methods */ };
class D : public B1, public B2
{ /* stuff, overrides*/ };
Некоторые переменные:
D obj;
B1 *bp1 = &obj;
B2 *bp2 = &obj;
Вопрос, как ведут себя следующие тесты на C++?
assert(&obj == bp1);
...
15 Сен 2023 в 10:20