在编写一个程序来反转一个字符串后,我无法理解为什么在尝试反转字符串时出现了seg故障.我在下面列出了我的程序.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void reverse(char *);
int main() {
char *str = calloc(1,'\0');
strcpy(str,"mystring0123456789");
reverse(str);
printf("Reverse String is: %s\n",str);
return 0;
}
void reverse(char *string) {
char ch, *start, *end;
int c=0;
int length = strlen(string);
start = string;
end = string;
while (c < length-1){
end++;
c++;
}
c=0;
while(c < length/2){
ch = *end;
*end = *start;
*start = ch;
start++;
end--;
c++;
}
}
Run Code Online (Sandbox Code Playgroud)
第一个问题:
即使我只将1个字节的内存分配给char指针str(calloc(1,'\0')
),并且我将18个字节的字符串复制mystring0123456789
到其中,并且它没有抛出任何错误,并且程序在没有任何SEGFAULT的情况下工作正常.
为什么我的程序没有抛出错误?理想情况下它应该抛出一些错误,因为它没有任何内存来存储那个大字符串.有人可以对此有所了解吗?
该程序运行完美,并给我输出Reverse …
我有一个整数值my $reading = 1200;
.
我有一个阵列 my @DigitField = "000000000";
我想用$reading
's值替换数组的右边4个元素,我想用编程方式使用Perl的长度函数,如下所示.
我试过了.
my @DigitField = "000000000";
my $reading = 1200;
splice @DigitField, length(@DigitField) + 1, length $reading, $reading;
print @DigitField;
Run Code Online (Sandbox Code Playgroud)
但我得到了
0000000001200
我希望字符串保持九个字符宽.
有什么其他方法可以替换部分Perl字符串数组?
当我尝试使用以下非常简单的Clojure测试文件使用lein创建一个uberjar时,我收到一个错误
Compiling korma-test.core
Exception in thread "main" java.lang.Exception:
lib names inside prefix lists must not contain periods, compiling:(core.clj:1:1)
Run Code Online (Sandbox Code Playgroud)
并无法弄清楚为什么.我(use 'korma.db)
从sqlkorma.com的docs部分得到了,并尝试了一个require语句(这里没有列出我的例子).
project.clj
(defproject korma-test "0.1.0-SNAPSHOT"
:description "korma db test"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies [[org.clojure/clojure "1.5.1"]
[korma "0.3.0-RC5"]]
:main korma-test.core)
Run Code Online (Sandbox Code Playgroud)
core.clj(简化)
(ns korma-test.core
(:gen-class)
(use 'korma.db)
(require '[clojure.string :as str])
(:import java.util.Date)
)
(defn -main
[& args]
(let [opts (parse-opts args)
start-time (str (Date.))]))
Run Code Online (Sandbox Code Playgroud) 我对我得到的错误感到困惑.
我的代码如下:
result = getString(argument_x)
print result # it returns "PASS"
if result ="PASS"
Run Code Online (Sandbox Code Playgroud)
当我尝试启动它时,它显示最后一行的错误:
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud) 我不知道为什么我的读取文件循环正在跳过行.
我正在尝试在python中编写一个简单的程序来解析txt文档,然后再在另一个文档中运行它.我本质上拥有的是一个看起来像三角形的文本文件,我正在尝试将其解析为列表中的列表,即
1
2 3
4 5 6
7 8 9 10
Run Code Online (Sandbox Code Playgroud)
成
[[1],[2,3],[4,5,6],[7,8,9,10]]
Run Code Online (Sandbox Code Playgroud)
但是,在我的下面的代码中,我的while循环似乎是"跳过"其他所有行,所以不是得到上面的列表,我得到类似的东西[[2,3],[7,8,9,10]]
.更令人费解的是,如果我注释掉最后一行,while循环将打印'1'完全正确的次数
f = open('test.txt')
triangle = []
while f.readline() != '':
print 1
triangle.append(map(int,f.readline().strip().split()))
Run Code Online (Sandbox Code Playgroud) python ×2
c ×1
char-pointer ×1
clojure ×1
if-statement ×1
korma ×1
leiningen ×1
perl ×1
syntax ×1