在C++中,我可以非常轻松地分配一个字符串数组(比如10个字符串):
string* arrayOfString = new string[10];
Run Code Online (Sandbox Code Playgroud)
但我不知道如何在ANSI C中做到这一点.我试过:
char** arrayOfString = (*(char[1000])) malloc (sizeof (*(char[1000])));
Run Code Online (Sandbox Code Playgroud)
但编译器(MinGW 3.4.5)一直说它是"语法错误".怎么做对了?谢谢.
这段代码导致分段错误:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SLIDINGWINDOW 5
#define SEGMENTSIZE 100
int main() {
char** send_buffer = (char**) malloc (SLIDINGWINDOW);
int i;
for (i = 0; i<SLIDINGWINDOW; ++i) {
send_buffer[i] = (char*) malloc (SEGMENTSIZE);
}
for (i = 0; i<SLIDINGWINDOW; ++i) {
strcpy(send_buffer[i], "Hello, world");
printf("%s\n", send_buffer[i]);
fflush(NULL);
}
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果你把第二个循环的内容放到第一个循环中,它就可以了!
谁能明白为什么会这样?非常感谢!
此行导致错误"构造函数Vector(double [],double [])未定义":
Vector<trainingSet> set = new Vector<trainingSet>({1.0, 1.0}, {0.0, 0.0});
Run Code Online (Sandbox Code Playgroud)
虽然类"trainingSet"确实有一个相应的构造函数:
public class trainingSet {
public double [] pattern, result;
public trainingSet(){}
public trainingSet(double[] Pattern, double[] Result){
pattern = Pattern;
result = Result;
}
}
Run Code Online (Sandbox Code Playgroud)
任何的想法?
import groovy.beans.Bindable;
import groovy.swing.SwingBuilder
import java.awt.BorderLayout
import javax.swing.JFrame
@Bindable def people = [[name:"Mary", age:18],
[name:"Tom", age:25]]
def swingBuilder = new SwingBuilder()
swingBuilder.edt { // edt method makes sure UI is build on Event Dispatch Thread.
lookAndFeel 'system' // Simple change in look and feel.
frame( title: 'Display a table',
size: [400,300],
show: true,
locationRelativeTo: null,
defaultCloseOperation: JFrame.EXIT_ON_CLOSE)
{
menuBar() {
menu(text: "File", mnemonic: 'F'){
menuItem(text: "Add",
actionPerformed: {
people << [name:"Harry", age:17]
println people
}
)}
}
panel(layout: new BorderLayout()) …Run Code Online (Sandbox Code Playgroud)