c - 在 C 中添加一个指向数组(指针)开头的指针

标签 c c-strings

我有一个字符指针数组

char ** strings

长度为

limit

我试图将一个 char 指针添加到数组的开头,同时维护除最后一个之外的所有数组对象 例如,如果我的数组有 3 个指针:

 {*str1, *str2, *str3}

我想在开头添加*str4,它看起来像这样:

 {*str4, *str1, *str2}

同时保持相同的大小

希望我说得足够清楚

谢谢

编辑

我试图避免循环整个过程来移动指针。我正在为此寻找 O(1) 解决方案

最佳答案

可以用链表概念来完成。[首先插入]

步骤:

1)元素声明。

 struct element{
char *dataPtr;
struct element *next;
};

2)main中的头元素声明。

struct element *head;

3)将 head 传递给插入函数

struct element *new =(struct element *)malloc(sizeof(element));
insert(&head,new)

4)在插入函数中,

if (*head == NULL)
{
*head = new;
new ->Next = *head;
}
else
{
new->Next = *head;
*head = new;
}

在这一步中,您不需要遍历整个链表。

关于c - 在 C 中添加一个指向数组(指针)开头的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15835681/

相关文章:

将均匀分布转换为泊松分布

c - 在 Cuda 中访问设备内存

c - 我需要帮助用 c 语言创建一个程序来打印用户输入值的平均值和计数

c - GCC构造函数不执行

c - 将 1D char* 划分为 2D char**

带有 strncmp 的 Linux 上的 C 段错误

有人可以向我解释一下这段代码是如何工作的吗?

c - C 字符串中 '\0' 之后的内存会发生什么?

c++ - 使用 unique_ptr 的常量字符指针

使用指针比较字符串?