我有以下来源:
#include <iostream>
using namespace std;
void main(int j)
{
char arr[10][10];
char** ptr;
ptr = arr;
}
当我使用VS2010编译它时,我得到了这个错误:
error : a value of type "char (*)[10]" cannot be assigned to an entity of type "char **"
我以为c++中的数组只是指针。所以char[][]也可以是char**。我做错了
下面是查找字符串的字谜的代码。我使用指针数组来完成它,但是我想使用指针算法来完成它。
#include <stdio.h>
int check_anagram(char [], char []);
int main()
{
char a[100], b[100];
int flag;
printf("Enter first string\n");
gets(a);
printf("Enter second string\n");
gets(b);
flag = check_anagr
我发现在用c语言编译和用c++编译时,我发现了一个不完全理解的区别.假设我声明了一个大小为5的字符数组:
char my_array[5];
据我理解,"my_array“实际上是一个char指针,它允许我这样做:
char* a = my_array;
现在,我知道当我声明我的数组时,我只分配了5个字节(其中每个值都分配一个字节),这意味着"&my_array“不应该存在,因为指向my_array的指针没有分配的内存。为了证明这一点,我做了这个:
char* b = &my_array; // compiler error in c++, not in c
c
我一直在学习编程,我选择了C++和C#编程作为第一语言。更具体地说,我有一本旧的C语言书,有人好心借给我,我正在用它来学习C#。我使用Visual Studio Express并用C++和C#编写。我感兴趣的一个领域是进行直接内存管理的能力。我正在努力学习如何使用它来优化我的代码。然而,我正在努力做好这件事,实际上看到了任何真正的性能改进。例如,以下是C#中的代码:
unsafe static void Main(string[] args)
{
int size = 300000;
char[] numbers = new char[size];
for (int
我有一个C++函数foo(unsigned char*& ptr),它创建一个缓冲区并用二进制数据填充它,并设置ptr指向它。我需要从Java获取缓冲区的内容。
为了澄清,可以这样使用C++代码:
unsigned char* ptr;
foo(ptr);
//now ptr points to a buffer, do what you want, eg
x=ptr[1];
使用arrays_java.i将无法工作,因为SWIG需要事先知道数组大小。我还尝试了为unsigned char*修改的用于unsigned char*&的内置类型映射NIOBUFFER,但这给生成的C
我的代码里发生了很奇怪的事情。我相信我已经找到了标有“这里”的部分(当然,代码是简化的):
std::string func() {
char c;
// Do stuff that will assign to c
return "" + c; // Here
}
当我尝试cout这个函数的结果时,会发生各种各样的事情。我想我甚至已经得到了一些底层的C++文档,还有很多。在我看来,这在C++中是行不通的(我现在求助于使用stringstream进行到string的转换),但是我想知道为什么。在使用了很长一段时间的C#而没有使用C++之后,这给我带来了很
一些C或C++程序员惊讶地发现,即使是。但是,对于堆或堆栈数组,可以存储数组末尾之后的地址,这允许您存储" end“位置,以便在循环中使用。
但是,从单个堆栈变量形成指针范围是不是未定义的行为,如:
char c = 'X';
char* begin = &c;
char* end = begin + 1;
for (; begin != end; ++begin) { /* do something */ }
虽然上面的例子很没用,但在某些函数需要一个指针范围的情况下,这可能会很有用,而你有一个简单的值来传递它。
这是未定义的行为吗?
我知道C++语言和C语言完全不同,但是C++是一个超级C语言集。
我不知道为什么这段代码在C中只使用几个警告就编译和运行,并抛出像scalar object 'a' requires one element in initializer这样的错误
下面是:
#include<stdio.h>
int tabulate(char **head){
//Stuffs here
}
int main(){
char **a={"Abc","Def"};
tabulate(a);
return 0;
}
关于