相关疑难解决方法(0)

如何用1个真正大的数组快速初始化

我有一个很大的阵列:

int* arr = new int[BIGNUMBER];
Run Code Online (Sandbox Code Playgroud)

如何用1号码快速填充它.通常我会这样做

for(int i = 0; i < BIGNUMBER; i++)
    arr[i] = 1
Run Code Online (Sandbox Code Playgroud)

但我认为这需要很长时间.

我可以使用memcpy或类似吗?

c++ arrays performance

6
推荐指数
1
解决办法
4742
查看次数

如何仅使用-1值初始化数组

可能重复:
如何在C中
初始化一个int初始化数组

我想知道初始化一个int数组只包含-1值的最快/最简单的方法.我需要的数组是90英特长,所以直截了当的方法应该像这样初始化它:

int array[90]={-1, -1, -1, ...};
Run Code Online (Sandbox Code Playgroud)

但我只想使用一次数组,所以我想能够动态地使用它,并且能够在程序中使用它后释放它,所以我更喜欢快速的方式calloc,但不是零,而是-1课程.

c arrays

5
推荐指数
2
解决办法
1万
查看次数

当我试图在函数中返回此数组时,为什么会出现错误"数组初始值设定项必须是初始化列表"?

我是来自Java,而且我对Objective C很新.无论如何,我有这个静态方法,它旨在制作一个数组的副本 (如果有更好的方法来实现这一点,请告诉我,但我我更多地问这个问题,以便找出我为什么会遇到这个错误,以及如何在将来避免这样的错误.)我遇到了一些问题,但就在我认为我把它们全部整理好的时候,我得到了这个错误看起来像XCode http://i43.tinypic.com/35nal3n.png

这是界面中的方法:

+ (float[]) copyArray: (float[]) array withLength: (int) length;
Run Code Online (Sandbox Code Playgroud)

以下是实现中的方法:

+ (float[]) copyArray: (float[]) array withLength: (int) length
{
    float copiedArray[length];
    for (int i = 0; i < length; i++)
    {
        copiedArray[i] = array[i];
    }
    return copiedArray;
}
Run Code Online (Sandbox Code Playgroud)

arrays xcode initialization objective-c

5
推荐指数
2
解决办法
8827
查看次数

奇怪的值被初始化为数组

int letters[] = {['A'] = 4, ['B'] = 8, ['E'] = 3, ['I'] = 1, ['O'] = 0, ['S'] = 5};
Run Code Online (Sandbox Code Playgroud)

当我初始化上面的数组字母时,我的假设是在每个大写字母的索引处,该值将是数字,即if ['A'] = 4,然后在index处,'A'该值将为4,其余未初始化的值将默认为0 .

但是当我打印数组字母的所有值时,我得到这个输出:

00000000000000000000000000000000000000000000000000000000000000000480030001000000000514303876720941309621-1392458268143038767232767-197939865932767-1979398659327670010143038792832767

我不知道负数来自哪里.

c

5
推荐指数
2
解决办法
185
查看次数

使用非零值初始化 C 风格数组,无需循环

我们知道 C++ 允许用零初始化 C 风格的数组

int a[5] = {0};
// or
int a[5] = {};
Run Code Online (Sandbox Code Playgroud)

对于 std::array 也同样有效

std::array a<int, 5> = {};
Run Code Online (Sandbox Code Playgroud)

但是,这行不通:

int a[5] = {33}; // in memory( 33, 0, 0, 0, 0 )
std::array<int, 5> = {33}; // in memory( 33, 0, 0, 0, 0 )
Run Code Online (Sandbox Code Playgroud)

vector有没有办法在不使用or 的情况下用非零值初始化整个数组algorhtm

也许constexpr可以帮忙?最好的解决方案是什么?

附:

GCC 提供了这种语法

int a[5] = {[0 ... 4] = 33};
Run Code Online (Sandbox Code Playgroud)

但我不确定它对于其他编译器是否有效。

c++ arrays

5
推荐指数
2
解决办法
7038
查看次数

将C或C99中的结构数组初始化为所有相同的值

让我们在C或C99中假设以下内容:

typedef struct
{
   int x;
   double y;
} MY_S;

MY_S a[666] = {333, 666.6};
Run Code Online (Sandbox Code Playgroud)

这是否仅初始化数组的第一个对象?如果是,是否有一种方法可以使用该语法将数组的所有元素初始化为所有相同的值(无需调用函数/循环,而无需重复初始化程序)?

c arrays struct initialization c99

5
推荐指数
2
解决办法
2719
查看次数

初始化单值的多维数组

有人能让我想起将C中的数组(特别是多维)分配给单个值的语法吗?

我相信这些波浪形的括号做了这个,虽然我在测试时遇到了编译器错误:

int ArrayName [5][5] = {1};
Run Code Online (Sandbox Code Playgroud)

将数组初始化为1.

c

4
推荐指数
2
解决办法
3769
查看次数

为什么溢出数组初始化会发出警告但溢出的赋值不会?

为什么不int a[5] = {1,2,3,4,5,6}发出警告int a[5] = {1,2,3,4,5}; a[5] = 6;呢?

当我最初声明数组大小为5时,这样做是否是一个好习惯?

如果我不知道阵列的大小怎么办?我可以这样声明int a[]吗?

c arrays

4
推荐指数
2
解决办法
216
查看次数

为什么此数组的所有剩余值都初始化为零?

你好我是C编程语言的初学者,最近我开始学习数组,我研究过默认情况下int数组中的所有值都是垃圾.

那么为什么我在这两种情况下得到不同的价值观.

情况1

int arr[5];
Run Code Online (Sandbox Code Playgroud)

在这种情况下,从arr [0]到arr [4]我们将有垃圾值,但在下一种情况下.

案例2

int arr[5] = {1};
Run Code Online (Sandbox Code Playgroud)

在这种情况下,arr [0]将具有值1,并且从arr [1]到arr [4]的剩余值将为0.

我的问题是,在case-1中,每个未初始化的阵列位置都有垃圾valeus,那么为什么在2-case剩余的未初始化阵列位置具有0作为默认值.

c arrays array-initialization

4
推荐指数
2
解决办法
1972
查看次数

C中的任意长度字符串

我需要对字符串进行一些操作(比如在某些地方添加字母).我不知道它的大小,取决于输入.

如何定义字符串而不指定其大小?我希望它适应我放在里面的任何内容.

为什么我不能只将空char *方法传递给方法?编译器不允许这样做.

根据答案,我明白我无法创建无限大小的字符串.但是,例如,当我尝试创建char arr[100]并且我的字符串的长度只有8个字符时,当我打印时,arr我得到了更多的字母然后我想要.其中一些甚至不是字符串的一部分.怎么可能?

c string

4
推荐指数
1
解决办法
1万
查看次数